about summary refs log tree commit diff
diff options
context:
space:
mode:
-rwxr-xr-xlib/tests/modules.sh2
-rw-r--r--lib/tests/modules/functionTo/submodule-options.nix61
-rw-r--r--lib/types.nix4
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml10
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md2
-rw-r--r--nixos/lib/make-options-doc/options-to-docbook.xsl8
-rw-r--r--nixos/modules/misc/locate.nix2
-rw-r--r--nixos/modules/services/monitoring/prometheus/default.nix23
-rw-r--r--nixos/modules/services/networking/radicale.nix2
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix27
-rw-r--r--nixos/modules/services/x11/display-managers/gdm.nix9
-rw-r--r--pkgs/applications/audio/pulseeffects-legacy/default.nix2
-rw-r--r--pkgs/applications/blockchains/cgminer/default.nix7
-rw-r--r--pkgs/applications/blockchains/lightwalletd/default.nix28
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix4
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix4
-rw-r--r--pkgs/applications/misc/logseq/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix10
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terraform-inventory/default.nix25
-rw-r--r--pkgs/applications/networking/cluster/terraform-inventory/deps.nix20
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json14
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-provider7
-rw-r--r--pkgs/applications/networking/instant-messengers/cinny/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/mutt/default.nix1
-rw-r--r--pkgs/applications/office/jameica/default.nix6
-rw-r--r--pkgs/applications/plasma-mobile/angelfish.nix6
-rw-r--r--pkgs/applications/plasma-mobile/audiotube.nix21
-rw-r--r--pkgs/applications/plasma-mobile/default.nix2
-rw-r--r--pkgs/applications/plasma-mobile/fetch.sh2
-rw-r--r--pkgs/applications/plasma-mobile/kasts.nix8
-rw-r--r--pkgs/applications/plasma-mobile/krecorder.nix2
-rw-r--r--pkgs/applications/plasma-mobile/neochat.nix (renamed from pkgs/applications/networking/instant-messengers/neochat/default.nix)12
-rw-r--r--pkgs/applications/plasma-mobile/plasma-dialer.nix16
-rw-r--r--pkgs/applications/plasma-mobile/plasma-settings.nix4
-rw-r--r--pkgs/applications/plasma-mobile/plasmatube.nix41
-rw-r--r--pkgs/applications/plasma-mobile/spacebar.nix9
-rw-r--r--pkgs/applications/plasma-mobile/srcs.nix184
-rw-r--r--pkgs/applications/science/biology/EZminc/default.nix1
-rw-r--r--pkgs/applications/science/misc/root/5.nix1
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/physics/xfitter/0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch50
-rw-r--r--pkgs/applications/science/physics/xfitter/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-ignore/default.nix13
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-sync/default.nix7
-rw-r--r--pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix12
-rw-r--r--pkgs/desktops/gnome/extensions/dash-to-dock/default.nix15
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix14
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix4
-rw-r--r--pkgs/development/compilers/vlang/default.nix34
-rw-r--r--pkgs/development/compilers/vlang/disable_vcreate_test.patch133
-rw-r--r--pkgs/development/coq-modules/interval/default.nix4
-rw-r--r--pkgs/development/go-modules/generic/default.nix20
-rw-r--r--pkgs/development/go-packages/generic/default.nix20
-rw-r--r--pkgs/development/interpreters/j/default.nix105
-rw-r--r--pkgs/development/libraries/console-bridge/default.nix4
-rw-r--r--pkgs/development/libraries/folly/default.nix4
-rw-r--r--pkgs/development/libraries/icu/59.nix4
-rw-r--r--pkgs/development/libraries/icu/65.nix4
-rw-r--r--pkgs/development/libraries/libfpx/default.nix12
-rw-r--r--pkgs/development/libraries/libnih/default.nix25
-rw-r--r--pkgs/development/libraries/libpcap/default.nix4
-rw-r--r--pkgs/development/libraries/openssl/default.nix14
-rw-r--r--pkgs/development/libraries/podofo/default.nix4
-rw-r--r--pkgs/development/libraries/prometheus-client-c/default.nix7
-rw-r--r--pkgs/development/libraries/qtmpris/default.nix40
-rw-r--r--pkgs/development/libraries/science/math/lrs/default.nix6
-rw-r--r--pkgs/development/libraries/xdg-dbus-proxy/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/easy-format/default.nix16
-rw-r--r--pkgs/development/python-modules/ansible-compat/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-core/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix4
-rw-r--r--pkgs/development/python-modules/bc-python-hcl2/default.nix4
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix11
-rw-r--r--pkgs/development/python-modules/cachelib/default.nix6
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix1
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix4
-rw-r--r--pkgs/development/python-modules/django-anymail/default.nix6
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix6
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix4
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix9
-rw-r--r--pkgs/development/python-modules/gcal-sync/default.nix4
-rw-r--r--pkgs/development/python-modules/graphtage/default.nix6
-rw-r--r--pkgs/development/python-modules/hatchling/default.nix4
-rw-r--r--pkgs/development/python-modules/herepy/default.nix6
-rw-r--r--pkgs/development/python-modules/ijson/default.nix8
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix4
-rw-r--r--pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--pkgs/development/python-modules/mt-940/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy-stl/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/pandas/default.nix10
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--pkgs/development/python-modules/poetry-dynamic-versioning/default.nix4
-rw-r--r--pkgs/development/python-modules/pylsp-mypy/default.nix6
-rw-r--r--pkgs/development/python-modules/pyrfxtrx/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrogram/default.nix4
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix4
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix6
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix5
-rw-r--r--pkgs/development/tools/build-managers/corrosion/default.nix18
-rw-r--r--pkgs/development/tools/cocoapods/Gemfile6
-rw-r--r--pkgs/development/tools/cocoapods/Gemfile-beta10
-rw-r--r--pkgs/development/tools/cocoapods/Gemfile-beta.lock36
-rw-r--r--pkgs/development/tools/cocoapods/Gemfile.lock36
-rw-r--r--pkgs/development/tools/cocoapods/gemset-beta.nix57
-rw-r--r--pkgs/development/tools/cocoapods/gemset.nix57
-rw-r--r--pkgs/development/tools/dump_syms/default.nix6
-rw-r--r--pkgs/development/tools/jl/default.nix23
-rw-r--r--pkgs/development/tools/ocaml/dune/3.nix6
-rw-r--r--pkgs/development/tools/protoc-gen-go-vtproto/default.nix6
-rw-r--r--pkgs/development/tools/sumneko-lua-language-server/default.nix10
-rw-r--r--pkgs/development/tools/systemfd/Cargo.nix215
-rw-r--r--pkgs/development/tools/systemfd/crates-io.list62
-rw-r--r--pkgs/development/tools/systemfd/crates-io.nix1890
-rw-r--r--pkgs/development/tools/systemfd/default.nix44
-rw-r--r--pkgs/games/liquidwar/5.nix9
-rw-r--r--pkgs/os-specific/darwin/dockutil/default.nix27
-rw-r--r--pkgs/os-specific/linux/kernel/xanmod-kernels.nix10
-rw-r--r--pkgs/os-specific/linux/light/default.nix12
-rw-r--r--pkgs/os-specific/linux/restool/default.nix6
-rw-r--r--pkgs/servers/icingaweb2/ipl.nix4
-rw-r--r--pkgs/servers/invidious/lsquic.nix53
-rw-r--r--pkgs/servers/invidious/shards.nix8
-rwxr-xr-xpkgs/servers/invidious/update.sh2
-rw-r--r--pkgs/servers/invidious/versions.json8
-rw-r--r--pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix6
-rw-r--r--pkgs/servers/monitoring/icinga2/default.nix4
-rw-r--r--pkgs/servers/plex/raw.nix6
-rw-r--r--pkgs/servers/radicale/3.x.nix1
-rw-r--r--pkgs/tools/admin/stripe-cli/default.nix4
-rw-r--r--pkgs/tools/admin/syft/default.nix19
-rw-r--r--pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch21
-rw-r--r--pkgs/tools/audio/beets/builtin-plugins.nix95
-rw-r--r--pkgs/tools/audio/beets/common.nix147
-rw-r--r--pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch34
-rw-r--r--pkgs/tools/audio/beets/default.nix317
-rw-r--r--pkgs/tools/audio/beets/imagemagick-nix-path.patch20
-rw-r--r--pkgs/tools/audio/beets/patches/bash-completion-always-print.patch (renamed from pkgs/tools/audio/beets/bash-completion-always-print.patch)0
-rw-r--r--pkgs/tools/audio/beets/plugins/alternatives.nix6
-rw-r--r--pkgs/tools/audio/beets/plugins/copyartifacts.nix18
-rw-r--r--pkgs/tools/audio/beets/plugins/extrafiles.nix14
-rw-r--r--pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch26
-rw-r--r--pkgs/tools/audio/mpris-scrobbler/default.nix4
-rw-r--r--pkgs/tools/filesystems/httm/default.nix6
-rw-r--r--pkgs/tools/filesystems/hubicfuse/default.nix6
-rw-r--r--pkgs/tools/misc/addic7ed-cli/default.nix (renamed from pkgs/development/python-modules/addic7ed-cli/default.nix)0
-rw-r--r--pkgs/tools/misc/fontforge/default.nix1
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/contrib.nix6
-rw-r--r--pkgs/tools/misc/opentelemetry-collector/default.nix6
-rw-r--r--pkgs/tools/nix/npins/default.nix44
-rw-r--r--pkgs/tools/nix/npins/source.nix57
-rw-r--r--pkgs/tools/nix/npins/sources.json19
-rw-r--r--pkgs/tools/security/witness/default.nix6
-rw-r--r--pkgs/tools/text/discount/default.nix24
-rw-r--r--pkgs/tools/text/discount/parallel-make.patch15
-rw-r--r--pkgs/tools/text/link-grammar/default.nix6
-rw-r--r--pkgs/top-level/aliases.nix5
-rw-r--r--pkgs/top-level/all-packages.nix94
-rw-r--r--pkgs/top-level/linux-kernels.nix1
-rw-r--r--pkgs/top-level/python-packages.nix2
-rw-r--r--pkgs/top-level/qt5-packages.nix2
169 files changed, 1545 insertions, 3511 deletions
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 82d3dd96e88bb..487fcd93641b8 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -290,6 +290,8 @@ checkConfigOutput '^"a b"$' config.result ./functionTo/merging-list.nix
 checkConfigError 'A definition for option .fun.\[function body\]. is not of type .string.. Definition values:\n\s*- In .*wrong-type.nix' config.result ./functionTo/wrong-type.nix
 checkConfigOutput '^"b a"$' config.result ./functionTo/list-order.nix
 checkConfigOutput '^"a c"$' config.result ./functionTo/merging-attrs.nix
+checkConfigOutput '^"a bee"$' config.result ./functionTo/submodule-options.nix
+checkConfigOutput '^"fun.\[function body\].a fun.\[function body\].b"$' config.optionsResult ./functionTo/submodule-options.nix
 
 # moduleType
 checkConfigOutput '^"a b"$' config.resultFoo ./declare-variants.nix ./define-variant.nix
diff --git a/lib/tests/modules/functionTo/submodule-options.nix b/lib/tests/modules/functionTo/submodule-options.nix
new file mode 100644
index 0000000000000..b884892efd6aa
--- /dev/null
+++ b/lib/tests/modules/functionTo/submodule-options.nix
@@ -0,0 +1,61 @@
+{ lib, config, options, ... }:
+let
+  inherit (lib) types;
+in
+{
+  imports = [
+
+    # fun.<function-body>.a
+    ({ ... }: {
+      options = {
+        fun = lib.mkOption {
+          type = types.functionTo (types.submodule {
+            options.a = lib.mkOption { default = "a"; };
+          });
+        };
+      };
+    })
+
+    # fun.<function-body>.b
+    ({ ... }: {
+      options = {
+        fun = lib.mkOption {
+          type = types.functionTo (types.submodule {
+            options.b = lib.mkOption { default = "b"; };
+          });
+        };
+      };
+    })
+  ];
+
+  options = {
+    result = lib.mkOption
+      {
+        type = types.str;
+        default = lib.concatStringsSep " " (lib.attrValues (config.fun (throw "shouldn't use input param")));
+      };
+
+    optionsResult = lib.mkOption
+      {
+        type = types.str;
+        default = lib.concatStringsSep " "
+          (lib.concatLists
+            (lib.mapAttrsToList
+              (k: v:
+                if k == "_module"
+                then [ ]
+                else [ (lib.showOption v.loc) ]
+              )
+              (
+                (options.fun.type.getSubOptions [ "fun" ])
+              )
+            )
+          );
+      };
+  };
+
+  config.fun = lib.mkMerge
+    [
+      (input: { b = "bee"; })
+    ];
+}
diff --git a/lib/types.nix b/lib/types.nix
index e4b3f358d1c9a..2590d3e8710b3 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -526,9 +526,11 @@ rec {
       check = isFunction;
       merge = loc: defs:
         fnArgs: (mergeDefinitions (loc ++ [ "[function body]" ]) elemType (map (fn: { inherit (fn) file; value = fn.value fnArgs; }) defs)).mergedValue;
-      getSubOptions = elemType.getSubOptions;
+      getSubOptions = prefix: elemType.getSubOptions (prefix ++ [ "[function body]" ]);
       getSubModules = elemType.getSubModules;
       substSubModules = m: functionTo (elemType.substSubModules m);
+      functor = (defaultFunctor "functionTo") // { wrapped = elemType; };
+      nestedTypes.elemType = elemType;
     };
 
     # A submodule (like typed attribute set). See NixOS manual.
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index e59a916dbebe2..7c7274b007f5e 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -2521,6 +2521,16 @@ cp /var/lib/redis/dump.rdb &quot;/var/lib/redis-mastodon/dump.rdb&quot;
       </listitem>
       <listitem>
         <para>
+          The Nextcloud module now allows setting the value of the
+          <literal>max-age</literal> directive of the
+          <literal>Strict-Transport-Security</literal> HTTP header,
+          which is now controlled by the
+          <literal>services.nextcloud.https</literal> option, rather
+          than <literal>services.nginx.recommendedHttpHeaders</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>spark3</literal> package has been updated from
           3.1.2 to 3.2.1
           (<link xlink:href="https://github.com/NixOS/nixpkgs/pull/160075">#160075</link>):
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index c6348964e7417..1cba088af6df8 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -894,6 +894,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 - The Nextcloud module now supports to create a Mysql database automatically
   with `services.nextcloud.database.createLocally` enabled.
 
+- The Nextcloud module now allows setting the value of the `max-age` directive of the `Strict-Transport-Security` HTTP header, which is now controlled by the `services.nextcloud.https` option, rather than `services.nginx.recommendedHttpHeaders`.
+
 - The `spark3` package has been updated from 3.1.2 to 3.2.1 ([#160075](https://github.com/NixOS/nixpkgs/pull/160075)):
 
   - Testing has been enabled for `aarch64-linux` in addition to `x86_64-linux`.
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index b286f7b5e2c0a..607db4bb21bae 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -20,7 +20,13 @@
       <title>Configuration Options</title>
       <variablelist xml:id="configuration-variable-list">
         <xsl:for-each select="attrs">
-          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'), ':', '_'))" />
+          <xsl:variable name="id" select="
+            concat('opt-',
+              translate(
+                attr[@name = 'name']/string/@value,
+                '*&lt; >[]:',
+                '_______'
+            ))" />
           <varlistentry>
             <term xlink:href="#{$id}">
               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute>
diff --git a/nixos/modules/misc/locate.nix b/nixos/modules/misc/locate.nix
index 192c9ec413cb6..50495eebe4c29 100644
--- a/nixos/modules/misc/locate.nix
+++ b/nixos/modules/misc/locate.nix
@@ -250,7 +250,7 @@ in
     };
 
     warnings = optional (isMorPLocate && cfg.localuser != null)
-      "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
+      "mlocate and plocate do not support the services.locate.localuser option. updatedb will run as root. Silence this warning by setting services.locate.localuser = null."
     ++ optional (isFindutils && cfg.pruneNames != [ ])
       "findutils locate does not support pruning by directory component"
     ++ optional (isFindutils && cfg.pruneBindMounts)
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index ceb2db1faefd8..41848c1c6d3a7 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -5,6 +5,9 @@ with lib;
 let
   json = pkgs.formats.json { };
   cfg = config.services.prometheus;
+  checkConfigEnabled =
+    (lib.isBool cfg.checkConfig && cfg.checkConfig)
+      || cfg.checkConfig == "syntax-only";
 
   workingDir = "/var/lib/" + cfg.stateDir;
 
@@ -27,7 +30,7 @@ let
 
   # a wrapper that verifies that the configuration is valid
   promtoolCheck = what: name: file:
-    if cfg.checkConfig then
+    if checkConfigEnabled then
       pkgs.runCommandLocal
         "${name}-${replaceStrings [" "] [""] what}-checked"
         { buildInputs = [ cfg.package ]; } ''
@@ -58,7 +61,7 @@ let
           pkgs.writeText "prometheus.yml" cfg.configText
         else generatedPrometheusYml;
     in
-    promtoolCheck "check config" "prometheus.yml" yml;
+    promtoolCheck "check config ${lib.optionalString (cfg.checkConfig == "syntax-only") "--syntax-only"}" "prometheus.yml" yml;
 
   cmdlineArgs = cfg.extraFlags ++ [
     "--storage.tsdb.path=${workingDir}/data/"
@@ -1726,16 +1729,20 @@ in
     };
 
     checkConfig = mkOption {
-      type = types.bool;
+      type = with types; either bool (enum [ "syntax-only" ]);
       default = true;
+      example = "syntax-only";
       description = ''
         Check configuration with <literal>promtool
         check</literal>. The call to <literal>promtool</literal> is
-        subject to sandboxing by Nix. When credentials are stored in
-        external files (<literal>password_file</literal>,
-        <literal>bearer_token_file</literal>, etc), they will not be
-        visible to <literal>promtool</literal> and it will report
-        errors, despite a correct configuration.
+        subject to sandboxing by Nix.
+
+        If you use credentials stored in external files
+        (<literal>password_file</literal>, <literal>bearer_token_file</literal>, etc),
+        they will not be visible to <literal>promtool</literal>
+        and it will report errors, despite a correct configuration.
+        To resolve this, you may set this option to <literal>"syntax-only"</literal>
+        in order to only syntax check the Prometheus configuration.
       '';
     };
 
diff --git a/nixos/modules/services/networking/radicale.nix b/nixos/modules/services/networking/radicale.nix
index c6c40777ed7cf..227bafc1d0e8c 100644
--- a/nixos/modules/services/networking/radicale.nix
+++ b/nixos/modules/services/networking/radicale.nix
@@ -164,7 +164,7 @@ in {
         StateDirectoryMode = "0750";
         # Hardening
         CapabilityBoundingSet = [ "" ];
-        DeviceAllow = [ "/dev/stdin" ];
+        DeviceAllow = [ "/dev/stdin" "/dev/urandom" ];
         DevicePolicy = "strict";
         IPAddressAllow = mkIf bindLocalhost "localhost";
         IPAddressDeny = mkIf bindLocalhost "any";
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index a4b886821ebf7..87270776f5a69 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -546,10 +546,23 @@ in {
       '';
     };
 
-    nginx.recommendedHttpHeaders = mkOption {
-      type = types.bool;
-      default = true;
-      description = "Enable additional recommended HTTP response headers";
+    nginx = {
+      recommendedHttpHeaders = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Enable additional recommended HTTP response headers";
+      };
+      hstsMaxAge = mkOption {
+        type = types.ints.positive;
+        default = 15552000;
+        description = ''
+          Value for the <code>max-age</code> directive of the HTTP
+          <code>Strict-Transport-Security</code> header.
+
+          See section 6.1.1 of IETF RFC 6797 for detailed information on this
+          directive and header.
+        '';
+      };
     };
   };
 
@@ -702,7 +715,7 @@ in {
               'skeletondirectory' => '${cfg.skeletonDirectory}',
               ${optionalString cfg.caching.apcu "'memcache.local' => '\\OC\\Memcache\\APCu',"}
               'log_type' => 'syslog',
-              'log_level' => '${builtins.toString cfg.logLevel}',
+              'loglevel' => '${builtins.toString cfg.logLevel}',
               ${optionalString (c.overwriteProtocol != null) "'overwriteprotocol' => '${c.overwriteProtocol}',"}
               ${optionalString (c.dbname != null) "'dbname' => '${c.dbname}',"}
               ${optionalString (c.dbhost != null) "'dbhost' => '${c.dbhost}',"}
@@ -983,7 +996,9 @@ in {
             add_header X-Permitted-Cross-Domain-Policies none;
             add_header X-Frame-Options sameorigin;
             add_header Referrer-Policy no-referrer;
-            add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+          ''}
+          ${optionalString (cfg.https) ''
+            add_header Strict-Transport-Security "max-age=${toString cfg.nginx.hstsMaxAge}; includeSubDomains" always;
           ''}
           client_max_body_size ${cfg.maxUploadSize};
           fastcgi_buffers 64 4K;
diff --git a/nixos/modules/services/x11/display-managers/gdm.nix b/nixos/modules/services/x11/display-managers/gdm.nix
index 4941d13c810ed..45e3d84afa4af 100644
--- a/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixos/modules/services/x11/display-managers/gdm.nix
@@ -140,8 +140,13 @@ in
         environment = {
           GDM_X_SERVER_EXTRA_ARGS = toString
             (filter (arg: arg != "-terminate") cfg.xserverArgs);
-          # GDM is needed for gnome-login.session
-          XDG_DATA_DIRS = "${gdm}/share:${cfg.sessionData.desktops}/share:${pkgs.gnome.gnome-control-center}/share";
+          XDG_DATA_DIRS = lib.makeSearchPath "share" [
+            gdm # for gnome-login.session
+            cfg.sessionData.desktops
+            pkgs.gnome.gnome-control-center # for accessibility icon
+            pkgs.gnome.adwaita-icon-theme
+            pkgs.hicolor-icon-theme # empty icon theme as a base
+          ];
         } // optionalAttrs (xSessionWrapper != null) {
           # Make GDM use this wrapper before running the session, which runs the
           # configured setupCommands. This relies on a patched GDM which supports
diff --git a/pkgs/applications/audio/pulseeffects-legacy/default.nix b/pkgs/applications/audio/pulseeffects-legacy/default.nix
index fad17ac71fdec..2a775369d26ab 100644
--- a/pkgs/applications/audio/pulseeffects-legacy/default.nix
+++ b/pkgs/applications/audio/pulseeffects-legacy/default.nix
@@ -108,7 +108,7 @@ in stdenv.mkDerivation rec {
     description = "Limiter, compressor, reverberation, equalizer and auto volume effects for Pulseaudio applications";
     homepage = "https://github.com/wwmm/pulseeffects";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jtojnar ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
     badPlatforms = [ "aarch64-linux" ];
   };
diff --git a/pkgs/applications/blockchains/cgminer/default.nix b/pkgs/applications/blockchains/cgminer/default.nix
index a77924bb1f05e..48a8d3ad93022 100644
--- a/pkgs/applications/blockchains/cgminer/default.nix
+++ b/pkgs/applications/blockchains/cgminer/default.nix
@@ -39,6 +39,13 @@ stdenv.mkDerivation rec {
                      "--enable-keccak"
                      "--enable-bflsc"];
 
+  # Workaround build failure on -fno-common toolchains like upstream
+  # gcc-10. Otherwise build fails as:
+  #   ld: cgminer-driver-modminer.o:/build/source/miner.h:285:
+  #     multiple definition of `bitforce_drv'; cgminer-cgminer.o:/build/source/miner.h:285:
+  #     first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   meta = with lib; {
     description = "CPU/GPU miner in c for bitcoin";
     homepage = "https://github.com/ckolivas/cgminer";
diff --git a/pkgs/applications/blockchains/lightwalletd/default.nix b/pkgs/applications/blockchains/lightwalletd/default.nix
index 43af8491210a6..1cfd2071e8676 100644
--- a/pkgs/applications/blockchains/lightwalletd/default.nix
+++ b/pkgs/applications/blockchains/lightwalletd/default.nix
@@ -1,14 +1,14 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, lightwalletd, testers }:
 
 buildGoModule rec {
   pname = "lightwalletd";
-  version = "0.4.9";
+  version = "0.4.10";
 
   src = fetchFromGitHub {
     owner = "zcash";
     repo  = "lightwalletd";
-    rev = "v${version}";
-    sha256 = "sha256-IksA06V+mP7ZAXXFYLKLacxrDXeMXHAk5w4t7pmobq4=";
+    rev = "68789356fb1a75f62735a529b38389ef08ea7582";
+    sha256 = "sha256-7gZhr6YMarGdgoGjg+oD4nZ/SAJ5cnhEDKmA4YMqJTo=";
   };
 
   vendorSha256 = null;
@@ -16,22 +16,28 @@ buildGoModule rec {
   ldflags = [
     "-s" "-w"
     "-X github.com/zcash/lightwalletd/common.Version=v${version}"
-    "-X github.com/zcash/lightwalletd/common.GitCommit=v${version}"
+    "-X github.com/zcash/lightwalletd/common.GitCommit=${src.rev}"
     "-X github.com/zcash/lightwalletd/common.BuildDate=1970-01-01"
     "-X github.com/zcash/lightwalletd/common.BuildUser=nixbld"
   ];
 
-  postFixup = ''
-    shopt -s extglob
-    cd $out/bin
-    rm !(lightwalletd)
-  '';
+  excludedPackages = [
+    "genblocks"
+    "testclient"
+    "zap"
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = lightwalletd;
+    command = "lightwalletd version";
+    version = "v${lightwalletd.version}";
+  };
 
   meta = with lib; {
     description = "A backend service that provides a bandwidth-efficient interface to the Zcash blockchain";
     homepage = "https://github.com/zcash/lightwalletd";
     maintainers = with maintainers; [ centromere ];
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index f8e20f1a05db2..e3cea78629f41 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.12.9";
+  version = "1.1.13.1";
 
   src = fetchurl {
     url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
-    sha256 = "sha256-DtoLQbRXyR4xGm+M0xg9uj8wcbh1dOBJUG430OS8AS4=";
+    sha256 = "sha256-AtsNbUqEBQx0DPWR2LjNl7pdviYmvkv3bYKNBoeJHbw=";
   };
 
   dontBuild = true;
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index 44d540149768d..66248ff5365f4 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -45,13 +45,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.1.0-33";
+  version = "7.1.0-34";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    hash = "sha256-qiXTSQcc48IIzz7RUcyOH2w8JUOTdU1zg43gJhoELXo=";
+    hash = "sha256-eASmIOTYupK5di3lggJ/8O5pkG88ZpFuvaYK23AWsq4=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 0d28a38202034..d0b02caff04c6 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "logseq";
-  version = "0.6.8";
+  version = "0.6.9";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    sha256 = "QPbH7d2RC8DLze44Q3gCQ9IzHOgIq8IB+hZr9+8rTs0=";
+    sha256 = "sha256-ubhGDx5T1AAJjU6Ka1Pqy5kL8HPa097QhhK5Sp3HWEo=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 252e55f248276..5700f6cd93dc2 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -177,8 +177,8 @@ buildStdenv.mkDerivation ({
 
   outputs = [
     "out"
-    "symbols"
-  ];
+  ]
+  ++ lib.optionals crashreporterSupport [ "symbols" ];
 
   # Add another configure-build-profiling run before the final configure phase if we build with pgo
   preConfigurePhases = lib.optionals pgoSupport [
@@ -212,7 +212,6 @@ buildStdenv.mkDerivation ({
   nativeBuildInputs = [
     autoconf
     cargo
-    dump_syms
     gnum4
     llvmPackagesBuildBuild.bintools
     makeWrapper
@@ -227,6 +226,7 @@ buildStdenv.mkDerivation ({
     which
     wrapGAppsHook
   ]
+  ++ lib.optionals crashreporterSupport [ dump_syms ]
   ++ lib.optionals pgoSupport [ xvfb-run ]
   ++ extraNativeBuildInputs;
 
@@ -437,11 +437,11 @@ buildStdenv.mkDerivation ({
 
   # Generate build symbols once after the final build
   # https://firefox-source-docs.mozilla.org/crash-reporting/uploading_symbol.html
-  preInstall = ''
+  preInstall = lib.optionalString crashreporterSupport ''
     ./mach buildsymbols
     mkdir -p $symbols/
     cp mozobj/dist/*.crashreporter-symbols.zip $symbols/
-
+  '' + ''
     cd mozobj
   '';
 
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index 899b751462239..0cd05cfddd580 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-cn0PhumDaOhTm1vZCj0h9XehnQCDc+mXtne7QQNSbBk=";
+    sha256 = "sha256-kjXqkaBF3rAaGnDDVmAoFmvH4t8/seC+KF7K78eKZco=";
   };
 
   vendorSha256 = "sha256-bsIPEjD/kCUvkRKP85CjW3JJf1Hyx9b2pMY9S4HlKrA=";
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index acc3370ce83b7..5de2f03be7d31 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FuWfHd4LfFHX5oRopDIDTi90cARi8cYjJBK0BgeCD/U=";
+    sha256 = "sha256-5bigfsig2LkZoLUlA6764ttG85CNi6rmOgQck+/zc5c=";
   };
 
-  vendorSha256 = "sha256-mHitGjOfSRlqORWFtB16buSSJrCf7Li9+oHX4rcO4ek=";
+  vendorSha256 = "sha256-Ei4L35/RN2en7gOUzvGflBivTlBy2YnUvTHqcCe5HN4=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 085b504314eec..783f9c79bb7fd 100644
--- a/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -1,22 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub}:
+{ lib, buildGoModule, fetchFromGitHub, testers, terraform-inventory }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "terraform-inventory";
-  version = "0.7-pre";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/adammck/terraform-inventory";
-
-  subPackages = [ "./" ];
+  version = "0.10";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "adammck";
     repo = "terraform-inventory";
-    sha256 = "0wwyi2nfyn3wfpmvj8aabn0cjba0lpr5nw3rgd6qdywy7sc3rmb1";
+    rev = "v${version}";
+    sha256 = "sha256-gkSDxcBoYmCBzkO8y1WKcRtZdfl8w5qVix0zbyb4Myo=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-pj9XLzaGU1PuNnpTL/7XaKJZUymX+i8hFMroZtHIqTc=";
+
+  ldflags = [ "-s" "-w" "-X main.build_version=${version}" ];
+
+  doCheck = false;
+
+  passthru.tests.version = testers.testVersion {
+    package = terraform-inventory;
+  };
 
   meta = with lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
diff --git a/pkgs/applications/networking/cluster/terraform-inventory/deps.nix b/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
deleted file mode 100644
index 9f7b5e317fe3c..0000000000000
--- a/pkgs/applications/networking/cluster/terraform-inventory/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/adammck/venv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/adammck/venv";
-      rev = "8a9c907a37d36a8f34fa1c5b81aaf80c2554a306";
-      sha256 = "1fzk3j4q59kpd2ks2aw8rmic6b123p5mh981cjh0kzs716grc6y8";
-    };
-  }
-  {
-    goPackagePath = "github.com/blang/vfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blang/vfs";
-      rev = "c14afcac17253ce7418da751ec6b1988790cdc8f";
-      sha256 = "00q5qzxpn9n59nrmrljz4w9lljxvrr8i5j8i8b4iw86j0alcx53b";
-    };
-  }
-]
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 94fcafcb48cb6..db7ca3cf38641 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -420,10 +420,10 @@
     "owner": "integrations",
     "provider-source-address": "registry.terraform.io/integrations/github",
     "repo": "terraform-provider-github",
-    "rev": "v4.25.0-alpha",
-    "sha256": "sha256-9BE19VywtNIeDfjBKzle5nGFPmpS8lHV60w0h2xTztU=",
+    "rev": "v4.24.1",
+    "sha256": "sha256-1fwHMN2HIVl+8ZL7OtP1U5ORc41e7Tm3qEpMqIgWL20=",
     "vendorSha256": null,
-    "version": "4.25.0-alpha"
+    "version": "4.24.1"
   },
   "gitlab": {
     "owner": "gitlabhq",
@@ -719,10 +719,10 @@
     "owner": "equinix",
     "provider-source-address": "registry.terraform.io/equinix/metal",
     "repo": "terraform-provider-metal",
-    "rev": "v3.3.0-alpha.3",
-    "sha256": "sha256-wuZp0Be8a84y7JqpCGnBDPXgNG8JJcNWsIICP3ZjSVk=",
-    "vendorSha256": "sha256-Ln9EyycPduVuj+JefH9f+Q5KlNGvbcwcEDgaqH2M0So=",
-    "version": "3.3.0-alpha.3"
+    "rev": "v3.2.2",
+    "sha256": "193897farpyb3zxz6p79mfaf04ccin7xdirbkclqb3x3c56jy0xi",
+    "vendorSha256": null,
+    "version": "3.2.2"
   },
   "minio": {
     "owner": "aminueza",
diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-provider b/pkgs/applications/networking/cluster/terraform-providers/update-provider
index 4310fcdcc27b6..fb506cefbe069 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-provider
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-provider
@@ -128,9 +128,12 @@ version="$(jq -r '.version' <<<"${registry_response}")"
 if [[ ${old_version} == "${version}" && ${force} != 1 && -z ${vendorSha256} && ${old_vendor_sha256} != "${vendorSha256}" ]]; then
   echo_provider "already at version ${version}"
   exit
-else
-  echo_provider "updating from ${old_version} to ${version}"
 fi
+if [[ ${version} =~ (alpha|beta|pre) && ${force} != 1 ]]; then
+  echo_provider "not updating to unstable version ${version}"
+  exit
+fi
+echo_provider "updating from ${old_version} to ${version}"
 update_attr version "${version}"
 
 provider_source_url="$(jq -r '.source' <<<"${registry_response}")"
diff --git a/pkgs/applications/networking/instant-messengers/cinny/default.nix b/pkgs/applications/networking/instant-messengers/cinny/default.nix
index 57fb1b58d90f3..d27512bf5bcd6 100644
--- a/pkgs/applications/networking/instant-messengers/cinny/default.nix
+++ b/pkgs/applications/networking/instant-messengers/cinny/default.nix
@@ -4,11 +4,11 @@ let
   configOverrides = writeText "cinny-config-overrides.json" (builtins.toJSON conf);
 in stdenv.mkDerivation rec {
   pname = "cinny";
-  version = "2.0.2";
+  version = "2.0.3";
 
   src = fetchurl {
     url = "https://github.com/ajbura/cinny/releases/download/v${version}/cinny-v${version}.tar.gz";
-    sha256 = "sha256-qVnNVJK/Y76cZTh8QNeSNHDxHA/Ekbt7X6mKYkYAPNU=";
+    sha256 = "13jg28dypp7x6wgsc6vikbqnagp1grqsdmmwhll8qz9ih9rq9fxd";
   };
 
   installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
index f81b8853c8b26..1070821f5d2e8 100644
--- a/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signalbackup-tools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "signalbackup-tools";
-  version = "20220430";
+  version = "20220517";
 
   src = fetchFromGitHub {
     owner = "bepaald";
     repo = pname;
     rev = version;
-    sha256 = "sha256-clG0B7PgtlpsSnZgglkv7y7SOtMTBvwJMnvMrcTWXdI=";
+    sha256 = "sha256-6jKsdilgWm6oDAuzE1aToMg9oV9BmTgQrOvvlwPA5gc=";
   };
 
   # Remove when Apple SDK is >= 10.13
diff --git a/pkgs/applications/networking/mailreaders/mutt/default.nix b/pkgs/applications/networking/mailreaders/mutt/default.nix
index 5af97fa0f9389..c5ba0437efdc5 100644
--- a/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -28,6 +28,7 @@ with lib;
 stdenv.mkDerivation rec {
   pname = "mutt";
   version = "2.2.4";
+  outputs = [ "out" "doc" "info" ];
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index 1e34b7918da14..04d5108dc60de 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
 
 let
-  _version = "2.10.1";
-  _build = "482";
+  _version = "2.10.2";
+  _build = "484";
   version = "${_version}-${_build}";
 
   swtSystem = if stdenv.hostPlatform.system == "i686-linux" then "linux"
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "willuhn";
     repo = "jameica";
     rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
-    sha256 = "0pzcfqsf7flzipwivpinpkfb2xisand1sfjm00wif4pyj3f4qfh1";
+    sha256 = "1x9sybknzsfxp9z0pvw9dx80732ynyap57y03p7xwwjbcrnjla57";
   };
 
   # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
diff --git a/pkgs/applications/plasma-mobile/angelfish.nix b/pkgs/applications/plasma-mobile/angelfish.nix
index 99df3f55c1d5f..acd3a7a8c84d4 100644
--- a/pkgs/applications/plasma-mobile/angelfish.nix
+++ b/pkgs/applications/plasma-mobile/angelfish.nix
@@ -4,6 +4,7 @@
 , cmake
 , corrosion
 , extra-cmake-modules
+, gcc11
 , kconfig
 , kcoreaddons
 , kdbusaddons
@@ -19,8 +20,8 @@
 , srcs
 
 # These must be updated in tandem with package updates.
-, cargoShaForVersion ? "21.08"
-, cargoSha256 ? "1pbvw9hdzn3i97mahdy9y6jnjsmwmjs3lxfz7q6r9r10i8swbkak"
+, cargoShaForVersion ? "22.04"
+, cargoSha256 ? "RtdZMBKixC3mdHeFXY9u0pHyDv93Z8p4EVY+lz1aISM="
 }:
 
 # Guard against incomplete updates.
@@ -45,6 +46,7 @@ mkDerivation rec {
     cmake
     corrosion
     extra-cmake-modules
+    gcc11 # doesn't build with GCC 9 from stdenv on aarch64
   ] ++ (with rustPlatform; [
     cargoSetupHook
     rust.cargo
diff --git a/pkgs/applications/plasma-mobile/audiotube.nix b/pkgs/applications/plasma-mobile/audiotube.nix
index 1a1dedc7b4267..f020c22b1ae5a 100644
--- a/pkgs/applications/plasma-mobile/audiotube.nix
+++ b/pkgs/applications/plasma-mobile/audiotube.nix
@@ -1,8 +1,8 @@
 { lib
 , mkDerivation
-, fetchpatch
 
 , extra-cmake-modules
+, gcc11
 
 , kcoreaddons
 , kcrash
@@ -16,16 +16,9 @@
 mkDerivation rec {
   pname = "audiotube";
 
-  patches = [
-    # Fix compatibility with ytmusicapi 0.19.1
-    (fetchpatch {
-      url = "https://invent.kde.org/plasma-mobile/audiotube/-/commit/734caa02805988200f923b88d1590b3f7dac8ac2.patch";
-      sha256 = "0zq4f0w84dv0630bpvmqkfmhxbvibr2fxhzy6d2mnf098028gzyd";
-    })
-  ];
-
   nativeBuildInputs = [
     extra-cmake-modules
+    gcc11 # doesn't build with GCC 9 from stdenv on aarch64
     python3Packages.wrapPython
     python3Packages.pybind11
   ];
@@ -37,13 +30,11 @@ mkDerivation rec {
     kirigami2
     qtmultimedia
     qtquickcontrols2
-    python3Packages.youtube-dl
-    python3Packages.ytmusicapi
-  ];
+  ] ++ pythonPath;
 
-  pythonPath = [
-    python3Packages.youtube-dl
-    python3Packages.ytmusicapi
+  pythonPath = with python3Packages; [
+    yt-dlp
+    ytmusicapi
   ];
 
   preFixup = ''
diff --git a/pkgs/applications/plasma-mobile/default.nix b/pkgs/applications/plasma-mobile/default.nix
index 10c1f1d0e9bc8..9e0cf1443e2b1 100644
--- a/pkgs/applications/plasma-mobile/default.nix
+++ b/pkgs/applications/plasma-mobile/default.nix
@@ -73,9 +73,11 @@ let
       krecorder = callPackage ./krecorder.nix {};
       ktrip = callPackage ./ktrip.nix {};
       kweather = callPackage ./kweather.nix {};
+      neochat = callPackage ./neochat.nix {};
       plasma-dialer = callPackage ./plasma-dialer.nix {};
       plasma-phonebook = callPackage ./plasma-phonebook.nix {};
       plasma-settings = callPackage ./plasma-settings.nix {};
+      plasmatube = callPackage ./plasmatube.nix {};
       spacebar = callPackage ./spacebar.nix {};
     };
 
diff --git a/pkgs/applications/plasma-mobile/fetch.sh b/pkgs/applications/plasma-mobile/fetch.sh
index 14995aeb2b7f9..3a3d5b18a5347 100644
--- a/pkgs/applications/plasma-mobile/fetch.sh
+++ b/pkgs/applications/plasma-mobile/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma-mobile/21.08/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma-mobile/22.04/ -A '*.tar.xz' )
diff --git a/pkgs/applications/plasma-mobile/kasts.nix b/pkgs/applications/plasma-mobile/kasts.nix
index 370cba7e2ea82..793fd5c9bdab0 100644
--- a/pkgs/applications/plasma-mobile/kasts.nix
+++ b/pkgs/applications/plasma-mobile/kasts.nix
@@ -10,9 +10,12 @@
 , kcoreaddons
 , ki18n
 , kirigami2
+, networkmanager-qt
+, qtkeychain
 , qtmultimedia
 , qtquickcontrols2
 , syndication
+, taglib
 }:
 
 let
@@ -37,9 +40,12 @@ mkDerivation rec {
     kcoreaddons
     ki18n
     kirigami2
-    qtquickcontrols2
+    networkmanager-qt
+    qtkeychain
     qtmultimedia
+    qtquickcontrols2
     syndication
+    taglib
   ];
 
   preFixup = ''
diff --git a/pkgs/applications/plasma-mobile/krecorder.nix b/pkgs/applications/plasma-mobile/krecorder.nix
index c41413be8842e..35d38af566c3d 100644
--- a/pkgs/applications/plasma-mobile/krecorder.nix
+++ b/pkgs/applications/plasma-mobile/krecorder.nix
@@ -5,6 +5,7 @@
 , extra-cmake-modules
 
 , kconfig
+, kcoreaddons
 , ki18n
 , kirigami2
 , qtmultimedia
@@ -21,6 +22,7 @@ mkDerivation rec {
 
   buildInputs = [
     kconfig
+    kcoreaddons
     ki18n
     kirigami2
     qtmultimedia
diff --git a/pkgs/applications/networking/instant-messengers/neochat/default.nix b/pkgs/applications/plasma-mobile/neochat.nix
index a8e73ad1098f6..8147c4fb760e8 100644
--- a/pkgs/applications/networking/instant-messengers/neochat/default.nix
+++ b/pkgs/applications/plasma-mobile/neochat.nix
@@ -1,6 +1,5 @@
 { mkDerivation
 , lib
-, fetchFromGitLab
 , pkg-config
 , cmake
 , cmark
@@ -28,15 +27,6 @@
 
 mkDerivation rec {
   pname = "neochat";
-  version = "22.02";
-
-  src = fetchFromGitLab {
-    domain = "invent.kde.org";
-    owner = "network";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-7EBnHuwpyJ/bGrCldZHWOwcnJWDIDaNWZXHkCYkOTjs=";
-  };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config ];
 
@@ -64,7 +54,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A client for matrix, the decentralized communication protocol.";
+    description = "A client for matrix, the decentralized communication protocol";
     homepage = "https://apps.kde.org/en/neochat";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/applications/plasma-mobile/plasma-dialer.nix b/pkgs/applications/plasma-mobile/plasma-dialer.nix
index eb71c497084c4..1a30977aba9d5 100644
--- a/pkgs/applications/plasma-mobile/plasma-dialer.nix
+++ b/pkgs/applications/plasma-mobile/plasma-dialer.nix
@@ -4,6 +4,7 @@
 , cmake
 , extra-cmake-modules
 
+, callaudiod
 , kcontacts
 , kcoreaddons
 , kdbusaddons
@@ -12,12 +13,11 @@
 , knotifications
 , kpeople
 , libphonenumber
-, libpulseaudio
-, libqofono
+, modemmanager-qt
 , protobuf
-, pulseaudio-qt
+, qtfeedback
+, qtmpris
 , qtquickcontrols2
-, telepathy
 }:
 
 mkDerivation rec {
@@ -29,6 +29,7 @@ mkDerivation rec {
   ];
 
   buildInputs = [
+    callaudiod
     kcontacts
     kcoreaddons
     kdbusaddons
@@ -37,12 +38,11 @@ mkDerivation rec {
     knotifications
     kpeople
     libphonenumber
-    libpulseaudio
-    libqofono
+    modemmanager-qt
     protobuf # Needed by libphonenumber
-    pulseaudio-qt
+    qtfeedback
+    qtmpris
     qtquickcontrols2
-    telepathy
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/plasma-mobile/plasma-settings.nix b/pkgs/applications/plasma-mobile/plasma-settings.nix
index bcd04dadca22c..039f2d674b345 100644
--- a/pkgs/applications/plasma-mobile/plasma-settings.nix
+++ b/pkgs/applications/plasma-mobile/plasma-settings.nix
@@ -11,6 +11,8 @@
 , kdbusaddons
 , ki18n
 , kitemmodels
+, modemmanager-qt
+, networkmanager-qt
 , plasma-framework
 }:
 
@@ -29,6 +31,8 @@ mkDerivation rec {
     kdbusaddons
     ki18n
     kitemmodels
+    modemmanager-qt
+    networkmanager-qt
     plasma-framework
   ];
 
diff --git a/pkgs/applications/plasma-mobile/plasmatube.nix b/pkgs/applications/plasma-mobile/plasmatube.nix
new file mode 100644
index 0000000000000..894af98b6d187
--- /dev/null
+++ b/pkgs/applications/plasma-mobile/plasmatube.nix
@@ -0,0 +1,41 @@
+{ lib
+, mkDerivation
+, cmake
+, extra-cmake-modules
+, gst_all_1
+, kcoreaddons
+, kdeclarative
+, ki18n
+, kirigami2
+, qtmultimedia
+, qtquickcontrols2
+}:
+
+mkDerivation {
+  pname = "plasmatube";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+
+  buildInputs = [
+    kcoreaddons
+    kdeclarative
+    ki18n
+    kirigami2
+    qtmultimedia
+    qtquickcontrols2
+  ] ++ (with gst_all_1; [
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+  ]);
+
+  meta = {
+    description = "Youtube player powered by an invidious server";
+    homepage = "https://invent.kde.org/plasma-mobile/plasmatube";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/applications/plasma-mobile/spacebar.nix b/pkgs/applications/plasma-mobile/spacebar.nix
index 8d56655010862..24e2f6f4715b7 100644
--- a/pkgs/applications/plasma-mobile/spacebar.nix
+++ b/pkgs/applications/plasma-mobile/spacebar.nix
@@ -11,8 +11,10 @@
 , kpeople
 , libphonenumber
 , libqofono
+, modemmanager-qt
 , protobuf
-, telepathy
+, qcoro
+, qtquickcontrols2
 }:
 
 mkDerivation rec {
@@ -30,9 +32,10 @@ mkDerivation rec {
     knotifications
     kpeople
     libphonenumber
-    libqofono
+    modemmanager-qt
     protobuf # Needed by libphonenumber
-    telepathy
+    qcoro
+    qtquickcontrols2
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/plasma-mobile/srcs.nix b/pkgs/applications/plasma-mobile/srcs.nix
index 06b551a94cf43..e7da4d7b0f454 100644
--- a/pkgs/applications/plasma-mobile/srcs.nix
+++ b/pkgs/applications/plasma-mobile/srcs.nix
@@ -4,155 +4,187 @@
 
 {
   alligator = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/alligator-21.08.tar.xz";
-      sha256 = "1dhwfwd1v5wmx3sldpygb79kz87j13wd0arhlkm94z1whsixan0q";
-      name = "alligator-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/alligator-22.04.tar.xz";
+      sha256 = "1f2s0ay4qr7ylqnx8d1fawwi4h15gza2d4dsvrww1gm8ar1miqwc";
+      name = "alligator-22.04.tar.xz";
     };
   };
   angelfish = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/angelfish-21.08.tar.xz";
-      sha256 = "1gzvlha159bw767mj8lisn89592j4j4dazzfws3v4anddjh60xnh";
-      name = "angelfish-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/angelfish-22.04.tar.xz";
+      sha256 = "169bhkymfxcs93injzp86cvcdhv78pl4dfsscjahlh9c1g5lsbqa";
+      name = "angelfish-22.04.tar.xz";
     };
   };
   audiotube = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/audiotube-21.08.tar.xz";
-      sha256 = "14h4xna9v70lmp7cfpvdnz0f5a4gwgj0q3byccmawm38xsv15v8c";
-      name = "audiotube-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/audiotube-22.04.tar.xz";
+      sha256 = "0x9xmlfz39ac15c4rbg33sl1bbjmglxgz39flmrvrrw9h2m62s2x";
+      name = "audiotube-22.04.tar.xz";
     };
   };
   calindori = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/calindori-21.08.tar.xz";
-      sha256 = "08s16a8skh02n8ygqwryxpzczj5aqr5k58aijaz2gzx45m7ym31b";
-      name = "calindori-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/calindori-22.04.tar.xz";
+      sha256 = "1zinhlflrx230yymlfxvm98dvvq1yig3r49bq61fmyrzq6fdfv60";
+      name = "calindori-22.04.tar.xz";
     };
   };
   kalk = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/kalk-21.08.tar.xz";
-      sha256 = "0xzrahpz47yajalsfmpzmavxjwmr4bgljwyz2dhxdg40ryjxdy23";
-      name = "kalk-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/kalk-22.04.tar.xz";
+      sha256 = "0aaqcb7jkkqypawfkzjnqglzyni17064d0mhch8g7q0qm5izvap8";
+      name = "kalk-22.04.tar.xz";
     };
   };
   kasts = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/kasts-21.08.tar.xz";
-      sha256 = "10v6icxwv46nihzbdi0n2w71bsg7l166z7jf9rb7vf2mjh1gqavn";
-      name = "kasts-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/kasts-22.04.tar.xz";
+      sha256 = "0c60wp0i6l7ji13ap69lh21vpdq09h2nmqpzjlrwlbjqbhhx7lsh";
+      name = "kasts-22.04.tar.xz";
     };
   };
   kclock = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/kclock-21.08.tar.xz";
-      sha256 = "1zq0fxlwd7l3b6dgfqsmv1x4wvhmrjz5r0a38hbd7j7pzgyix47d";
-      name = "kclock-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/kclock-22.04.tar.xz";
+      sha256 = "1ycln85ydd3qmzfadgg80zf7jlwx5yijxs1mbfmx7f1rr427qdk6";
+      name = "kclock-22.04.tar.xz";
     };
   };
   keysmith = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/keysmith-21.08.tar.xz";
-      sha256 = "0fa8inli7cwmb75af0mr2cflng0r6k3pd6ckih6ph7szqbpg2x90";
-      name = "keysmith-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/keysmith-22.04.tar.xz";
+      sha256 = "0cx14r820mnlh75l3blc0ywxwmlinn2wakdnwl75w6i8l46k48li";
+      name = "keysmith-22.04.tar.xz";
+    };
+  };
+  khealthcertificate = {
+    version = "22.04";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma-mobile/22.04/khealthcertificate-22.04.tar.xz";
+      sha256 = "0sr90ki42m3cbjy63rl2ay02wm089wyka0lc4ik7jaic6wb47y5d";
+      name = "khealthcertificate-22.04.tar.xz";
     };
   };
   koko = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/koko-21.08.tar.xz";
-      sha256 = "1sqlcl871m6dlrnkkhqa3xfwix01d74d7jf94r1a3p32hqljv76p";
-      name = "koko-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/koko-22.04.tar.xz";
+      sha256 = "0i4h2brc5dqwdmj2bs7nywrz7cgqcf7nmm6yl03047vj9aah01cw";
+      name = "koko-22.04.tar.xz";
     };
   };
   kongress = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/kongress-21.08.tar.xz";
-      sha256 = "099ds4bv4ngx21f28hxcvc17wd2nk786kydwf2h5n3mdd2mgz3ka";
-      name = "kongress-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/kongress-22.04.tar.xz";
+      sha256 = "07yb8hddxl7m1wl0z7rcwdls3k9q89zl1d271n15j1rwrsbwiyxd";
+      name = "kongress-22.04.tar.xz";
     };
   };
   krecorder = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/krecorder-21.08.tar.xz";
-      sha256 = "1381x889h37saf6k875iqhwz5vbixrp7650smxp31r56ycrqq26i";
-      name = "krecorder-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/krecorder-22.04.tar.xz";
+      sha256 = "0d7nvq87avw4gj6whjrlmxs361r9cvzfmfsrca5f536jlazp95pg";
+      name = "krecorder-22.04.tar.xz";
     };
   };
   ktrip = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/ktrip-21.08.tar.xz";
-      sha256 = "0ipxi3pqd7mznq3qjf9j9w3wyck85lxnr81ay6b3ricfb08ry68x";
-      name = "ktrip-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/ktrip-22.04.tar.xz";
+      sha256 = "1ijy19axc492l4naayr3d8qdjznc286105qnki8vmcaw93p48n9x";
+      name = "ktrip-22.04.tar.xz";
     };
   };
   kweather = {
-    version = "21.08";
+    version = "22.04";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma-mobile/22.04/kweather-22.04.tar.xz";
+      sha256 = "0080l00dya34d35sf6z2j3ra6lls0nafr045a9jmxv09763ydb5d";
+      name = "kweather-22.04.tar.xz";
+    };
+  };
+  neochat = {
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/kweather-21.08.tar.xz";
-      sha256 = "0b1zjwsakwsnh6827zjhypvb04c78gwwygr7k1cy2x3finrp5if5";
-      name = "kweather-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/neochat-22.04.tar.xz";
+      sha256 = "04i1kn52w9jjaaw8x53mksw2vzrpsq1xrq13h158c1s3q1g9jdm8";
+      name = "neochat-22.04.tar.xz";
     };
   };
   plasma-dialer = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/plasma-dialer-21.08.tar.xz";
-      sha256 = "14vgjg0nihhm446cfrrld1l43r50dlah5xs2ypdnm68618bdc7p1";
-      name = "plasma-dialer-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/plasma-dialer-22.04.tar.xz";
+      sha256 = "0hnxasj6psplwykahhisipyvy67hfr820azixw5p820fzy11x2g4";
+      name = "plasma-dialer-22.04.tar.xz";
     };
   };
   plasma-phonebook = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/plasma-phonebook-21.08.tar.xz";
-      sha256 = "09gr5mkwhayx6k6bhm29bmcvdlqqw8jj7gydh5fz40g9z98c84km";
-      name = "plasma-phonebook-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/plasma-phonebook-22.04.tar.xz";
+      sha256 = "14nd2yx9cf6gabb10kcaqkdn7kb96n2209qrib7daq2ldva8c9i9";
+      name = "plasma-phonebook-22.04.tar.xz";
     };
   };
   plasma-settings = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/plasma-settings-21.08.tar.xz";
-      sha256 = "005v1gyrzl9b0k875p2wipja3l8l4awp8nl2d1jx7c28lqaspz2j";
-      name = "plasma-settings-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/plasma-settings-22.04.tar.xz";
+      sha256 = "1k40mviikpij1srar1hkg732qg14ld0176g1mpza0ysr3yr21vny";
+      name = "plasma-settings-22.04.tar.xz";
+    };
+  };
+  plasmatube = {
+    version = "22.04";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma-mobile/22.04/plasmatube-22.04.tar.xz";
+      sha256 = "01bmxdh0aclm184j5s0kddjc7a14225bdnbkr8jlk21g9wlw8cyx";
+      name = "plasmatube-22.04.tar.xz";
     };
   };
   qmlkonsole = {
-    version = "21.08";
+    version = "22.04.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/qmlkonsole-21.08.tar.xz";
-      sha256 = "1p3ysf6sgiji86400523hm67rvw3znj3a7k6g6s83dxynxdh2faq";
-      name = "qmlkonsole-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/qmlkonsole-22.04.1.tar.xz";
+      sha256 = "06zfrqaag9sgihs5k93nssgm4smrs2ymh7q0fx35z7fcphngjpaw";
+      name = "qmlkonsole-22.04.1.tar.xz";
     };
   };
   spacebar = {
-    version = "21.08";
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/spacebar-21.08.tar.xz";
-      sha256 = "1cg36iys4x7p97ywilnp2lzz1ry5a1m7jz38yh2yiw6m8wvzfqff";
-      name = "spacebar-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/spacebar-22.04.tar.xz";
+      sha256 = "0ga3symavdrq5aim924bd889b9cmv09dyplz9gcspk46w49vx3s5";
+      name = "spacebar-22.04.tar.xz";
     };
   };
   tokodon = {
-    version = "21.08";
+    version = "22.04";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma-mobile/22.04/tokodon-22.04.tar.xz";
+      sha256 = "0c9q2ax0h047xm3g5r5cn6sxfyv2lb93dahd5z3nw67bfrzwvnw2";
+      name = "tokodon-22.04.tar.xz";
+    };
+  };
+  vakzination = {
+    version = "22.04";
     src = fetchurl {
-      url = "${mirror}/stable/plasma-mobile/21.08/tokodon-21.08.tar.xz";
-      sha256 = "0j9zfcdss1872hv8xxrmy0jjmcz3y5kdz8gdrd6qmig5scrzjvnf";
-      name = "tokodon-21.08.tar.xz";
+      url = "${mirror}/stable/plasma-mobile/22.04/vakzination-22.04.tar.xz";
+      sha256 = "0zadygzw4xzpwbdnb6dwjjjls1h915gp9xaf59kbfbmzwb6m4mf8";
+      name = "vakzination-22.04.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/science/biology/EZminc/default.nix b/pkgs/applications/science/biology/EZminc/default.nix
index a2ba038c05991..6c140b03ee4b1 100644
--- a/pkgs/applications/science/biology/EZminc/default.nix
+++ b/pkgs/applications/science/biology/EZminc/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
     license = licenses.free;
+    broken = true;  # ITK5 compatibility issue (https://github.com/BIC-MNI/EZminc/issues/15)
   };
 }
diff --git a/pkgs/applications/science/misc/root/5.nix b/pkgs/applications/science/misc/root/5.nix
index 40a5412e7af77..84443645865e8 100644
--- a/pkgs/applications/science/misc/root/5.nix
+++ b/pkgs/applications/science/misc/root/5.nix
@@ -104,6 +104,7 @@ stdenv.mkDerivation rec {
     "-Drpath=ON"
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_CXX_FLAGS=-std=c++11"
     "-Dalien=OFF"
     "-Dbonjour=OFF"
     "-Dcastor=OFF"
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index 66acf07f8e4d7..4132bd0fa9641 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "7.6.2";
+  version = "7.7.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mIl5c+HR2kqgJzbLVTQjJlf4Ca/+Icqg9G49yIUyipc=";
+    hash = "sha256-KAnilLq7hZy5IU8d95D9sHSGfqibAvUAW3bRH/JwGnw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/science/physics/xfitter/0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch b/pkgs/applications/science/physics/xfitter/0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch
new file mode 100644
index 0000000000000..dd43e17cc7a26
--- /dev/null
+++ b/pkgs/applications/science/physics/xfitter/0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch
@@ -0,0 +1,50 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -54,21 +54,7 @@ endif()
+ endif()
+ 
+ #Use c preprocessor with fortran
+-
+-if(UNIX AND NOT APPLE)
+-  set(CMAKE_Fortran_FLAGS "-cpp -Wno-argument-mismatch")
+-endif()
+-
+-if(APPLE)
+-  set(CMAKE_Fortran_FLAGS "-cpp -fallow-argument-mismatch")
+-endif()
+-
+-
+-if (CMAKE_MAJOR_VERSION VERSION_GREATER_EQUAL "3")
+-if(CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL "10")
+-  set(CMAKE_Fortran_FLAGS "-cpp -fallow-argument-mismatch")
+-endif()
+-endif()
++set(CMAKE_Fortran_FLAGS "-cpp")
+ 
+ 
+ #For Fortran
+diff --git a/src/GetChisquare.f b/src/GetChisquare.f
+index b21413fe..28391bcb 100644
+--- a/src/GetChisquare.f
++++ b/src/GetChisquare.f
+@@ -2418,8 +2418,8 @@ C> @Brief Interface to lapack, to dynamically allocate work arrays
+       integer NCovar, NDimCovar
+       double precision Covar(NDimCovar,NDimCovar), EigenValues(NCovar)
+       integer IFail
+-      double precision Work
+-      integer IWork
++      double precision Work(1)
++      integer IWork(1)
+       Character*80 msg
+ C---------------------------------------------------------------
+ C Determine optimal size of the work array:
+@@ -2432,7 +2432,7 @@ C Determine optimal size of the work array:
+      $     int(work)+1, iwork
+       call HF_ERRLOG(14121701,msg)
+       call MyDSYEVD2(NCovar,Covar,NDimCovar, EigenValues,
+-     $     int(work)+1,iwork,ifail)
++     $     int(work(1))+1,iwork(1),ifail)
+ 
+       end
+ 
diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix
index 2be6153878893..4e6f6626602f9 100644
--- a/pkgs/applications/science/physics/xfitter/default.nix
+++ b/pkgs/applications/science/physics/xfitter/default.nix
@@ -31,10 +31,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ZHIQ5hOY+k0/wmpE0o4Po+RZ4MkVMk+bK1Rc6eqwwH0=";
   };
 
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt \
-      --replace "-fallow-argument-mismatch" ""
-  '';
+  patches = [
+    # Avoid need for -fallow-argument-mismatch
+    ./0001-src-GetChisquare.f-use-correct-types-in-calls-to-DSY.patch
+  ];
 
   nativeBuildInputs = [ cmake gfortran pkg-config ];
   buildInputs =
diff --git a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
index 5ff6d6b1f84bb..98da70a274e49 100644
--- a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -4,16 +4,16 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "git-ignore";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "sondr3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bKIBPqGKiS3ey8vH2F4EoleV1H2PTOp+71d/YW3jkT0=";
+    sha256 = "sha256-Bfr+4zDi6QqirlqccW1jU95eb4q82ZFG9LtT2mCPYLc=";
   };
 
-  cargoSha256 = "sha256-7jPNVBf5DYtE8nsh7LIywMCjU7ODZ3qFsmBie2mZ3h8=";
+  cargoSha256 = "sha256-ehEUI4M2IxqS6QhyqOncwP+w6IGbIlSFNIP/FEVH/JI=";
 
   nativeBuildInputs = [ pkg-config installShellFiles ];
   buildInputs = [ openssl ]
@@ -21,9 +21,10 @@ buildRustPackage rec {
     darwin.apple_sdk.frameworks.Security
   ];
 
-  outputs = [ "out" "man" ];
-  preFixup = ''
-    installManPage $releaseDir/build/git-ignore-*/out/git-ignore.1
+  postInstall = ''
+    installManPage assets/git-ignore.1
+    # There's also .elv and .ps1 completion files but I don't know where to install those
+    installShellCompletion assets/git-ignore.{bash,fish} --zsh assets/_git-ignore
   '';
 
   meta = with lib; {
diff --git a/pkgs/applications/version-management/git-and-tools/git-sync/default.nix b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
index 14696903542b5..83314802ca910 100644
--- a/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-sync/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-sync";
-  version = "unstable-2021-07-14";
+  version = "unstable-2022-03-20";
 
   src = fetchFromGitHub {
     owner = "simonthum";
     repo = "git-sync";
-    rev = "7d3d34bf3ee2483fba00948f5b97f964b849a590";
-    sha256 = "sha256-PuYREW5NBkYF1tlcLTbOI8570nvHn5ifN8OIInfNNxI=";
+    rev = "8466b77a38b3d5e8b4ed9e3cb1b635e475eeb415";
+    sha256 = "sha256-8rCwpmHV6wgFCLzPJOKzwN5mG8uD5KIlGFwcgQD+SK4=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   installPhase = ''
     mkdir -p $out/bin
     cp -a git-* $out/bin/
+    cp -a contrib/git-* $out/bin/
   '';
 
   wrapperPath = with lib; makeBinPath [
diff --git a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix b/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
index b3c9e1ea62ae7..5e36cd109e43b 100644
--- a/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
+++ b/pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, intltool, gnome
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, autoreconfHook, intltool, gnome
 , iconnamingutils, gtk3, gdk-pixbuf, librsvg, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
@@ -10,12 +10,20 @@ stdenv.mkDerivation rec {
     sha256 = "XoW1rcje5maQD8rycbpxf33LnQoD2W2uCPnL0n4YseA=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "reduce-build-parallelism.patch";
+      url = "https://gitlab.gnome.org/vcunat/adwaita-icon-theme/-/commit/27edeca7927eb2247d7385fccb3f0fd7787471e6.patch";
+      sha256 = "vDWuvz5yRhtn9obTtHRp6J7gJpXDZz1cajyquPGw53I=";
+    })
+  ];
+
   # For convenience, we can specify adwaita-icon-theme only in packages
   propagatedBuildInputs = [ hicolor-icon-theme ];
 
   buildInputs = [ gdk-pixbuf librsvg ];
 
-  nativeBuildInputs = [ pkg-config intltool iconnamingutils gtk3 ];
+  nativeBuildInputs = [ pkg-config autoreconfHook intltool iconnamingutils gtk3 ];
 
   dontDropIconThemeCache = true;
 
diff --git a/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix b/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
index 9447de1fd4e71..e7afab4c9ac91 100644
--- a/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
+++ b/pkgs/desktops/gnome/extensions/dash-to-dock/default.nix
@@ -4,19 +4,19 @@
 , glib
 , gettext
 , sassc
-, unstableGitUpdater
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-dash-to-dock";
-  version = "71+date=2022-02-23";
+  version = "72";
 
   # Temporarily switched to commit hash because stable version is buggy.
   src = fetchFromGitHub {
     owner = "micheleg";
     repo = "dash-to-dock";
-    rev = "6f717302747931de6bf35bc9839fb3bd946e2c2f";
-    sha256 = "1J8t0R43jBbqpXyH2uVyEK+OvhrCw18WWheflqwe100=";
+    rev = "extensions.gnome.org-v${version}";
+    sha256 = "Cds5Fc+rnvoy01GTZBS7qPh8UC9ekrNBOs+IEkDNkJw=";
   };
 
   nativeBuildInputs = [
@@ -33,9 +33,10 @@ stdenv.mkDerivation rec {
     extensionUuid = "dash-to-dock@micxgx.gmail.com";
     extensionPortalSlug = "dash-to-dock";
 
-    updateScript = unstableGitUpdater {
-      stableVersion = true;
-      tagPrefix = "extensions.gnome.org-v";
+    updateScript = gitUpdater {
+      pname = "gnomeExtensions.dash-to-dock";
+      inherit version;
+      rev-prefix = "extensions.gnome.org-v";
     };
   };
 
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 48cfda3df76d2..7edbc04e3ede1 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , nix-update-script
 , meson
 , ninja
@@ -32,24 +31,15 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-photos";
-  version = "2.7.4";
+  version = "2.7.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "photos";
     rev = version;
-    sha256 = "sha256-NhF/WgS6IOwgALSCNyFNxz8ROVTb+mUX+lBtnWEyhEI=";
+    sha256 = "sha256-zM32+bva+QD1Z/0vUD7K0/tnSzo+7GGLjJ1ytr64c0I=";
   };
 
-  patches = [
-    # Fix build with vala 0.56
-    # https://github.com/elementary/photos/pull/711
-    (fetchpatch {
-      url = "https://github.com/elementary/photos/commit/6594f1323726fb0d38519a7bdafe16f9170353cb.patch";
-      sha256 = "sha256-Ie9ULC8Xw4KLQJANPXh4LDywMjWfniPX/P76eHW8LHc=";
-    })
-  ];
-
   nativeBuildInputs = [
     appstream
     desktop-file-utils
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 70ab050c7ec17..a3d8d049e3b10 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
-  version = "6.4.0";
+  version = "6.5.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Fppl/IvdlW8lZ6YKEHaHNticv3FFFKEKTPPVnz4u9b4=";
+    sha256 = "sha256-Q/vvXKyeedn5o7HnL9F5ixSjJS3OWrvvHbzvx2fW2qY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/vlang/default.nix b/pkgs/development/compilers/vlang/default.nix
index 0601022df61be..64ccb2fc16e67 100644
--- a/pkgs/development/compilers/vlang/default.nix
+++ b/pkgs/development/compilers/vlang/default.nix
@@ -2,21 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "vlang";
-  version = "weekly.2022.19";
+  version = "weekly.2022.20";
 
   src = fetchFromGitHub {
     owner = "vlang";
     repo = "v";
     rev = version;
-    sha256 = "1bl91j3ip3i84jq3wg03sflllxv38sv4dc072r302rl2g9f4dbg6";
+    sha256 = "1isbyfs98bdbm2qjf7q4bqbpsmdiqlavn3gznwr12bkvhnsf4j3x";
   };
 
   # Required for bootstrap.
   vc = fetchFromGitHub {
     owner = "vlang";
     repo = "vc";
-    rev = "a298ad7069f6333ef8ab59a616654fc74e04c847";
-    sha256 = "168cgq6451hcgsxzyd8vq11g01642bs5kkwxqh6rz3rnc86ajic0";
+    rev = "167f262866090493650f58832d62d910999dd5a4";
+    sha256 = "1xax8355qkrccjcmx24gcab88xnrqj15mhqy0bgp3v2rb1hw1n3a";
   };
 
   # Required for vdoc.
@@ -27,11 +27,6 @@ stdenv.mkDerivation rec {
     sha256 = "0cawzizr3rjz81blpvxvxrcvcdai1adj66885ss390444qq1fnv7";
   };
 
-  # vcreate_test.v requires git, so we must disable it.
-  patches = [
-    ./disable_vcreate_test.patch
-  ];
-
   propagatedBuildInputs = [ glfw freetype openssl ]
     ++ lib.optional stdenv.hostPlatform.isUnix upx;
 
@@ -42,9 +37,16 @@ stdenv.mkDerivation rec {
     "VC=${vc}"
   ];
 
-  prePatch = ''
+  preBuild = ''
     export HOME=$(mktemp -d)
-    cp cmd/tools/vcreate_test.v $HOME/vcreate_test.v
+  '';
+
+  # vcreate_test.v requires git, so we must remove it when building the tools.
+  # vtest.v fails on Darwin, so let's just disable it for now.
+  preInstall = ''
+    mv cmd/tools/vcreate_test.v $HOME/vcreate_test.v
+  '' + lib.optionalString stdenv.isDarwin ''
+    mv cmd/tools/vtest.v $HOME/vtest.v
   '';
 
   installPhase = ''
@@ -64,12 +66,16 @@ stdenv.mkDerivation rec {
     $out/lib/v -v $out/lib/cmd/tools/vast
     $out/lib/v -v $out/lib/cmd/tools/vvet
 
-    # Return the pre-patch vcreate_test.v now that we no longer need the alteration.
-    cp $HOME/vcreate_test.v $out/lib/cmd/tools/vcreate_test.v
-
     runHook postInstall
   '';
 
+  # Return vcreate_test.v and vtest.v, so the user can use it.
+  postInstall = ''
+    cp $HOME/vcreate_test.v $out/lib/cmd/tools/vcreate_test.v
+  '' + lib.optionalString stdenv.isDarwin ''
+    cp $HOME/vtest.v $out/lib/cmd/tools/vtest.v
+  '';
+
   meta = with lib; {
     homepage = "https://vlang.io/";
     description = "Simple, fast, safe, compiled language for developing maintainable software";
diff --git a/pkgs/development/compilers/vlang/disable_vcreate_test.patch b/pkgs/development/compilers/vlang/disable_vcreate_test.patch
deleted file mode 100644
index 85ed867c83ec1..0000000000000
--- a/pkgs/development/compilers/vlang/disable_vcreate_test.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-diff --git a/cmd/tools/vcreate_test.v b/cmd/tools/vcreate_test.v
-index 3d07f4773..de8a202df 100644
---- a/cmd/tools/vcreate_test.v
-+++ b/cmd/tools/vcreate_test.v
-@@ -2,127 +2,6 @@ import os
- 
- const test_path = 'vcreate_test'
- 
--fn init_and_check() ? {
--	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
--
--	assert os.read_file('vcreate_test.v') ? == [
--		'module main\n',
--		'fn main() {',
--		"	println('Hello World!')",
--		'}',
--		'',
--	].join_lines()
--
--	assert os.read_file('v.mod') ? == [
--		'Module {',
--		"	name: 'vcreate_test'",
--		"	description: ''",
--		"	version: ''",
--		"	license: ''",
--		'	dependencies: []',
--		'}',
--		'',
--	].join_lines()
--
--	assert os.read_file('.gitignore') ? == [
--		'# Binaries for programs and plugins',
--		'main',
--		'vcreate_test',
--		'*.exe',
--		'*.exe~',
--		'*.so',
--		'*.dylib',
--		'*.dll',
--		'vls.log',
--		'',
--	].join_lines()
--
--	assert os.read_file('.gitattributes') ? == [
--		'*.v linguist-language=V text=auto eol=lf',
--		'*.vv linguist-language=V text=auto eol=lf',
--		'*.vsh linguist-language=V text=auto eol=lf',
--		'**/v.mod linguist-language=V text=auto eol=lf',
--		'',
--	].join_lines()
--
--	assert os.read_file('.editorconfig') ? == [
--		'[*]',
--		'charset = utf-8',
--		'end_of_line = lf',
--		'insert_final_newline = true',
--		'trim_trailing_whitespace = true',
--		'',
--		'[*.v]',
--		'indent_style = tab',
--		'indent_size = 4',
--		'',
--	].join_lines()
--}
--
- fn test_v_init() ? {
--	dir := os.join_path(os.temp_dir(), test_path)
--	os.rmdir_all(dir) or {}
--	os.mkdir(dir) or {}
--	defer {
--		os.rmdir_all(dir) or {}
--	}
--	os.chdir(dir) ?
--
--	init_and_check() ?
--}
--
--fn test_v_init_in_git_dir() ? {
--	dir := os.join_path(os.temp_dir(), test_path)
--	os.rmdir_all(dir) or {}
--	os.mkdir(dir) or {}
--	defer {
--		os.rmdir_all(dir) or {}
--	}
--	os.chdir(dir) ?
--	os.execute_or_exit('git init .')
--	init_and_check() ?
--}
--
--fn test_v_init_no_overwrite_gitignore() ? {
--	dir := os.join_path(os.temp_dir(), test_path)
--	os.rmdir_all(dir) or {}
--	os.mkdir(dir) or {}
--	os.write_file('$dir/.gitignore', 'blah') ?
--	defer {
--		os.rmdir_all(dir) or {}
--	}
--	os.chdir(dir) ?
--
--	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
--
--	assert os.read_file('.gitignore') ? == 'blah'
--}
--
--fn test_v_init_no_overwrite_gitattributes_and_editorconfig() ? {
--	git_attributes_content := '*.v linguist-language=V text=auto eol=lf'
--	editor_config_content := '[*]
--charset = utf-8
--end_of_line = lf
--insert_final_newline = true
--trim_trailing_whitespace = true
--
--[*.v]
--indent_style = tab
--indent_size = 4
--'
--
--	dir := os.join_path(os.temp_dir(), test_path)
--	os.rmdir_all(dir) or {}
--	os.mkdir(dir) or {}
--	os.write_file('$dir/.gitattributes', git_attributes_content) ?
--	os.write_file('$dir/.editorconfig', editor_config_content) ?
--	defer {
--		os.rmdir_all(dir) or {}
--	}
--	os.chdir(dir) ?
--
--	os.execute_or_exit('${os.quoted_path(@VEXE)} init')
--
--	assert os.read_file('.gitattributes') ? == git_attributes_content
--	assert os.read_file('.editorconfig') ? == editor_config_content
-+	println('vcreate_test disabled')
- }
diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix
index b9257d415e57f..375fae5b074c5 100644
--- a/pkgs/development/coq-modules/interval/default.nix
+++ b/pkgs/development/coq-modules/interval/default.nix
@@ -6,12 +6,12 @@ mkCoqDerivation rec {
   domain = "gitlab.inria.fr";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
-    { case = isGe "8.8"; out = "4.4.0"; }
+    { case = isGe "8.8"; out = "4.5.1"; }
     { case = range "8.8" "8.12"; out = "4.0.0"; }
     { case = range "8.7" "8.11"; out = "3.4.2"; }
     { case = range "8.5" "8.6";  out = "3.3.0"; }
   ] null;
-  release."4.4.0".sha256 = "sha256-0+9AatTIEsjul0RXoOw6zWGEbGDVmuy7XuyrZNBZ8Kk=";
+  release."4.5.1".sha256 = "sha256-5OxbSPdw/1FFENubulKSk6fEIEYSPCxfvMMgtgN6j6s=";
   release."4.3.0".sha256 = "sha256-k8DLC4HYYpHeEEgXUafS8jkaECqlM+/CoYaInmUTYko=";
   release."4.2.0".sha256 = "sha256-SD5thgpirs3wmZBICjXGpoefg9AAXyExb5t8tz3iZhE=";
   release."4.1.1".sha256 = "sha256-h2NJ6sZt1C/88v7W2xyuftEDoyRt3H6kqm5g2hc1aoU=";
diff --git a/pkgs/development/go-modules/generic/default.nix b/pkgs/development/go-modules/generic/default.nix
index d0dc55376faa0..4dff2d82848d6 100644
--- a/pkgs/development/go-modules/generic/default.nix
+++ b/pkgs/development/go-modules/generic/default.nix
@@ -180,22 +180,12 @@ let
       exclude+='\)'
 
       buildGoDir() {
-        local cmd="$1" dir="$2"
-
+        local d; local cmd;
+        cmd="$1"
+        d="$2"
         . $TMPDIR/buildFlagsArray
-
-        declare -a flags
-        flags+=($buildFlags "''${buildFlagsArray[@]}")
-        flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}})
-        flags+=(''${ldflags:+-ldflags="$ldflags"})
-        flags+=("-v" "-p" "$NIX_BUILD_CORES")
-
-        if [ "$cmd" = "test" ]; then
-          flags+=($checkFlags)
-        fi
-
         local OUT
-        if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then
+        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
             echo "$OUT" >&2
             return 1
@@ -253,7 +243,7 @@ let
       runHook preCheck
 
       for pkg in $(getGoDirs test); do
-        buildGoDir test "$pkg"
+        buildGoDir test $checkFlags "$pkg"
       done
 
       runHook postCheck
diff --git a/pkgs/development/go-packages/generic/default.nix b/pkgs/development/go-packages/generic/default.nix
index 643c1955d2b0b..0559f7f07a7c1 100644
--- a/pkgs/development/go-packages/generic/default.nix
+++ b/pkgs/development/go-packages/generic/default.nix
@@ -160,22 +160,12 @@ let
       exclude+='\)'
 
       buildGoDir() {
-        local cmd="$1" dir="$2"
-
+        local d; local cmd;
+        cmd="$1"
+        d="$2"
         . $TMPDIR/buildFlagsArray
-
-        declare -a flags
-        flags+=($buildFlags "''${buildFlagsArray[@]}")
-        flags+=(''${tags:+-tags=${lib.concatStringsSep "," tags}})
-        flags+=(''${ldflags:+-ldflags="$ldflags"})
-        flags+=("-v" "-p" "$NIX_BUILD_CORES")
-
-        if [ "$cmd" = "test" ]; then
-          flags+=($checkFlags)
-        fi
-
         local OUT
-        if ! OUT="$(go $cmd "''${flags[@]}" $dir 2>&1)"; then
+        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" ''${tags:+-tags=${lib.concatStringsSep "," tags}} ''${ldflags:+-ldflags="$ldflags"} -v -p $NIX_BUILD_CORES $d 2>&1)"; then
           if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
             echo "$OUT" >&2
             return 1
@@ -235,7 +225,7 @@ let
       runHook preCheck
 
       for pkg in $(getGoDirs test); do
-        buildGoDir test "$pkg"
+        buildGoDir test $checkFlags "$pkg"
       done
 
       runHook postCheck
diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix
index e41d71ef960b8..7f35dcfc63597 100644
--- a/pkgs/development/interpreters/j/default.nix
+++ b/pkgs/development/interpreters/j/default.nix
@@ -1,82 +1,107 @@
-{ lib, stdenv, fetchFromGitHub, readline, libedit, bc
+{ lib
+, stdenv
+, fetchFromGitHub
+, bc
+, libedit
+, readline
 , avxSupport ? stdenv.hostPlatform.avxSupport
 }:
 
 stdenv.mkDerivation rec {
   pname = "j";
-  version = "902";
-  jtype = "release-b";
+  version = "904-beta-c";
+
   src = fetchFromGitHub {
+    name = "${pname}-source";
     owner = "jsoftware";
     repo = "jsource";
-    rev = "j${version}-${jtype}";
-    sha256 = "0j67vgikqflwjqacsdicasvyv1k54s2c8vjgwmf0ix7l41p4xqz0";
-    name = "jsource";
+    rev = "j${version}";
+    hash = "sha256-MzEO/saHEBl1JwVlFC6P2UKm9RZnV7KVrNd9h4cPV/w=";
   };
 
-  buildInputs = [ readline libedit bc ];
-  bits = if stdenv.is64bit then "64" else "32";
-  platform =
-    if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry" else
-    if stdenv.isLinux then "linux" else
-    if stdenv.isDarwin then "darwin" else
-    "unknown";
-  variant = if stdenv.isx86_64 && avxSupport then "avx" else "";
-
-  j64x="j${bits}${variant}";
-
-  doCheck = true;
-
-  # Causes build failure due to warning
-  hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
-
-  # Causes build failure due to warning
-  # https://github.com/jsoftware/jsource/issues/16
-  NIX_CFLAGS_COMPILE = "-Wno-error=return-local-addr";
+  buildInputs = [
+    readline
+    libedit
+    bc
+  ];
+
+  dontConfigure = true;
+
+  # emulating build_all.sh configuration variables
+  jplatform =
+    if stdenv.isDarwin then "darwin"
+    else if (stdenv.isAarch32 || stdenv.isAarch64) then "raspberry"
+    else if stdenv.isLinux then "linux"
+    else "unsupported";
+
+  j64x =
+    if stdenv.is32bit then "j32"
+    else if stdenv.isx86_64 then
+      if (stdenv.isLinux && avxSupport) then "j64avx" else "j64"
+    else if stdenv.isAarch64 then
+      if stdenv.isDarwin then "j64arm" else "j64"
+    else "unsupported";
 
   buildPhase = ''
-    export SOURCE_DIR=$(pwd)
-    export HOME=$TMPDIR
-    export JLIB=$SOURCE_DIR/jlibrary
+    runHook preBuild
 
-    echo $OUT_DIR
+    export SRCDIR=$(pwd)
+    export HOME=$TMPDIR
+    export JLIB=$SRCDIR/jlibrary
+    export CC=cc
 
     cd make2
 
     patchShebangs .
-    sed -i $JLIB/bin/profile.ijs -e "s@'/usr/share/j/.*'@'$out/share/j'@;"
 
-    j64x="${j64x}" ./build_all.sh
+    j64x="${j64x}" jplatform="${jplatform}" ./build_all.sh
 
-    cp $SOURCE_DIR/bin/${platform}/j${bits}*/* "$JLIB/bin"
+    cp -v $SRCDIR/bin/${jplatform}/${j64x}/* "$JLIB/bin"
+
+    runHook postBuild
   '';
 
+  doCheck = true;
+
   checkPhase = ''
+    runHook preCheck
 
-    echo 'i. 5' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4"
+    echo "Smoke test"
+    echo 'i. 10' | $JLIB/bin/jconsole | fgrep "0 1 2 3 4 5 6 7 8 9"
 
     # Now run the real tests
-    cd $SOURCE_DIR/test
+    pushd $SRCDIR/test
     for f in *.ijs
     do
-      echo $f
+      echo -n "test $f: "
       $JLIB/bin/jconsole < $f > /dev/null || echo FAIL && echo PASS
     done
+    popd
+
+    runHook postCheck
   '';
 
   installPhase = ''
-    mkdir -p "$out"
+    runHook preInstall
 
-    mkdir -p "$out/share/j"
+    mkdir -p "$out/share/j/"
     cp -r $JLIB/{addons,system} "$out/share/j"
     cp -r $JLIB/bin "$out"
+
+    runHook postInstall
   '';
 
   meta = with lib; {
+    homepage = "http://jsoftware.com/";
     description = "J programming language, an ASCII-based APL successor";
-    maintainers = with maintainers; [ raskin synthetica ];
-    platforms = with platforms; linux ++ darwin;
+    longDescription = ''
+      J is a high-level, general-purpose programming language that is
+      particularly suited to the mathematical, statistical, and logical analysis
+      of data. It is a powerful tool for developing algorithms and exploring
+      problems that are not already well understood.
+    '';
     license = licenses.gpl3Plus;
-    homepage = "http://jsoftware.com/";
+    maintainers = with maintainers; [ raskin synthetica AndersonTorres ];
+    platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/libraries/console-bridge/default.nix b/pkgs/development/libraries/console-bridge/default.nix
index e2370ecce647f..5c85bbd4a1968 100644
--- a/pkgs/development/libraries/console-bridge/default.nix
+++ b/pkgs/development/libraries/console-bridge/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "console-bridge";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "ros";
     repo = "console_bridge";
     rev = version;
-    sha256 = "18qycrjnf7v8n5bipij91jsv7ap98z5dsp93w2gz9rah4lfjb80q";
+    sha256 = "sha256-M3GocT0hodw3Sc2NHcFDiPVZ1XN7BqIUuYLW8OaXMqM=";
   };
 
   nativeBuildInputs = [ cmake validatePkgConfig ];
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index dfc194f1d4cda..c3fe3ba2ce76a 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     zstd
   ];
 
-  NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" ];
+  NIX_CFLAGS_COMPILE = [ "-DFOLLY_MOBILE=${if follyMobile then "1" else "0"}" "-fpermissive" ];
   cmakeFlags = [ "-DBUILD_SHARED_LIBS=ON" ];
 
   meta = with lib; {
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/facebook/folly";
     license = licenses.asl20;
     # 32bit is not supported: https://github.com/facebook/folly/issues/103
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "aarch64-linux" ];
     maintainers = with maintainers; [ abbradar pierreis ];
   };
 }
diff --git a/pkgs/development/libraries/icu/59.nix b/pkgs/development/libraries/icu/59.nix
deleted file mode 100644
index 9ca66ca525fdd..0000000000000
--- a/pkgs/development/libraries/icu/59.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "59.1";
-  sha256 = "1zkmbg2932ggvpgjp8pys0cj6z8bw087y8858009shkrjfpzscki";
-}
diff --git a/pkgs/development/libraries/icu/65.nix b/pkgs/development/libraries/icu/65.nix
deleted file mode 100644
index c5074eea114d8..0000000000000
--- a/pkgs/development/libraries/icu/65.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "65.1";
-  sha256 = "0j6r6qqnhfr5iqkx53k63ifkm93kv1kkb7h2mlgd1mnnndk79qsk";
-}
diff --git a/pkgs/development/libraries/libfpx/default.nix b/pkgs/development/libraries/libfpx/default.nix
index 589c08399a702..963c93ffc592e 100644
--- a/pkgs/development/libraries/libfpx/default.nix
+++ b/pkgs/development/libraries/libfpx/default.nix
@@ -17,13 +17,15 @@ stdenv.mkDerivation rec {
       url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libfpx/files/libfpx-1.3.1_p6-gcc6.patch?id=f28a947813dbc0a1fd1a8d4a712d58a64c48ca01";
       sha256 = "032y8110zgnkdhkdq3745zk53am1x34d912rai8q70k3sskyq22p";
     })
+    # Pull upstream fix for -fno-common:
+    #  https://github.com/ImageMagick/libfpx/pull/1
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/ImageMagick/libfpx/commit/c32b340581ba6c88c5092f374f655c7579b598a6.patch";
+      sha256 = "1gbc0qb2ri1mj9r66wx0yn28fsr7zhhlyz2mwbica8wh34xijgz9";
+    })
   ];
 
-  # This dead code causes a duplicate symbol error in Clang so just remove it
-  postPatch = if stdenv.cc.isClang then ''
-    substituteInPlace jpeg/ejpeg.h --replace "int No_JPEG_Header_Flag" ""
-  '' else null;
-
   meta = with lib; {
     homepage = "http://www.imagemagick.org";
     description = "A library for manipulating FlashPIX images";
diff --git a/pkgs/development/libraries/libnih/default.nix b/pkgs/development/libraries/libnih/default.nix
deleted file mode 100644
index fbe01bf4062d2..0000000000000
--- a/pkgs/development/libraries/libnih/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, dbus, expat }:
-
-let version = "1.0.3"; in
-
-stdenv.mkDerivation {
-  pname = "libnih";
-  inherit version;
-
-  src = fetchurl {
-    url = "https://code.launchpad.net/libnih/1.0/${version}/+download/libnih-${version}.tar.gz";
-    sha256 = "01glc6y7z1g726zwpvp2zm79pyb37ki729jkh45akh35fpgp4xc9";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ dbus expat ];
-
-  doCheck = false; # fails 1 of 17 test
-
-  meta = {
-    description = "A small library for C application development";
-    homepage = "https://launchpad.net/libnih";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/libpcap/default.nix b/pkgs/development/libraries/libpcap/default.nix
index dbf494374cbba..f3d3587c14fa8 100644
--- a/pkgs/development/libraries/libpcap/default.nix
+++ b/pkgs/development/libraries/libpcap/default.nix
@@ -6,8 +6,6 @@ stdenv.mkDerivation rec {
   pname = "libpcap";
   version = "1.10.1";
 
-  outputs = [ "out" "dev" ];
-
   src = fetchurl {
     url = "https://www.tcpdump.org/release/${pname}-${version}.tar.gz";
     sha256 = "sha256-7ShfSsyvBTRPkJdXV7Pb/ncrpB0cQBwmSLf6RbcRvdQ=";
@@ -29,8 +27,6 @@ stdenv.mkDerivation rec {
     if [ "$dontDisableStatic" -ne "1" ]; then
       rm -f $out/lib/libpcap.a
     fi
-
-    moveToOutput "bin/pcap-config" "$dev"
   '';
 
   meta = {
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 26a89fe47a413..a0506dda1f694 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -7,6 +7,7 @@
 # This will cause c_rehash to refer to perl via the environment, but otherwise
 # will produce a perfectly functional openssl binary and library.
 , withPerl ? stdenv.hostPlatform == stdenv.buildPlatform
+, removeReferencesTo
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -112,7 +113,11 @@ let
       # OpenSSL needs a specific `no-shared` configure flag.
       # See https://wiki.openssl.org/index.php/Compilation_and_Installation#Configure_Options
       # for a comprehensive list of configuration options.
-      ++ lib.optional (lib.versionAtLeast version "1.1.0" && static) "no-shared";
+      ++ lib.optional (lib.versionAtLeast version "1.1.0" && static) "no-shared"
+      # This introduces a reference to the CTLOG_FILE which is undesired when
+      # trying to build binaries statically.
+      ++ lib.optional static "no-ct"
+      ;
 
     makeFlags = [
       "MANDIR=$(man)/share/man"
@@ -126,13 +131,16 @@ let
     enableParallelBuilding = true;
 
     postInstall =
-    lib.optionalString (!static) ''
+    (if static then ''
+      # OPENSSLDIR has a reference to self
+      ${removeReferencesTo}/bin/remove-references-to -t $out $out/lib/*.a
+    '' else ''
       # If we're building dynamic libraries, then don't install static
       # libraries.
       if [ -n "$(echo $out/lib/*.so $out/lib/*.dylib $out/lib/*.dll)" ]; then
           rm "$out/lib/"*.a
       fi
-    '' + lib.optionalString (!stdenv.hostPlatform.isWindows)
+    '') + lib.optionalString (!stdenv.hostPlatform.isWindows)
       # Fix bin/c_rehash's perl interpreter line
       #
       # - openssl 1_0_2: embeds a reference to buildPackages.perl
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index ee99ab5de6f73..c4aab614915c2 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -3,12 +3,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.7";
+  version = "0.9.8";
   pname = "podofo";
 
   src = fetchurl {
     url = "mirror://sourceforge/podofo/${pname}-${version}.tar.gz";
-    sha256 = "1f0yvkx6nf99fp741w2y706d8bs9824x1z2gqm3rdy5fv8bfgwkw";
+    sha256 = "sha256-XeYH4V8ZK4rZBzgwB1nYjeoPXM3OO/AASKDJMrxkUVQ=";
   };
 
   outputs = [ "out" "dev" "lib" ];
diff --git a/pkgs/development/libraries/prometheus-client-c/default.nix b/pkgs/development/libraries/prometheus-client-c/default.nix
index 9b18b25c72684..938d16d3776e9 100644
--- a/pkgs/development/libraries/prometheus-client-c/default.nix
+++ b/pkgs/development/libraries/prometheus-client-c/default.nix
@@ -43,6 +43,13 @@ let
         )
       ];
 
+      # Workaround build failure on -fno-common toolchains like upstream
+      # gcc-10. Otherwise build fails as:
+      #   ld: CMakeFiles/prom.dir/src/prom_process_stat.c.o:(.bss+0x0): multiple definition of
+      #     `prom_process_start_time_seconds'; CMakeFiles/prom.dir/src/prom_collector.c.o:(.bss+0x0): first defined here
+      # Should be fixed in 1.2.0 and later: https://github.com/digitalocean/prometheus-client-c/pull/25
+      NIX_CFLAGS_COMPILE = "-fcommon";
+
       preConfigure = ''
         cd ${subdir}
       '';
diff --git a/pkgs/development/libraries/qtmpris/default.nix b/pkgs/development/libraries/qtmpris/default.nix
new file mode 100644
index 0000000000000..ef595efa731d3
--- /dev/null
+++ b/pkgs/development/libraries/qtmpris/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, qmake
+, qtbase
+}:
+
+mkDerivation rec {
+  pname = "qtmpris";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "sailfishos";
+    repo = "qtmpris";
+    rev = version;
+    hash = "sha256-kuM8hUdsa7N+eLDbwYw3ay+PWxg35zcTBOvGow1NlzI=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/src.pro \
+      --replace '$$[QT_INSTALL_LIBS]'    "$out/lib" \
+      --replace '$$[QT_INSTALL_HEADERS]' "$out/include" \
+      --replace '$$[QMAKE_MKSPECS]'      "$out/mkspecs"
+  '';
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtbase
+  ];
+
+  meta = {
+    description = "Qt and QML MPRIS interface and adaptor";
+    homepage = "https://github.com/sailfishos/qtmpris";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/libraries/science/math/lrs/default.nix b/pkgs/development/libraries/science/math/lrs/default.nix
index 063fead11650f..ae5beb0f09e6f 100644
--- a/pkgs/development/libraries/science/math/lrs/default.nix
+++ b/pkgs/development/libraries/science/math/lrs/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lrs";
-  version = "7.0";
+  version = "7.2";
 
   src = fetchurl {
-    url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-070.tar.gz";
-    sha256 = "1zjdmkjracz695k73c2pvipc0skpyn1wzagkhilsvcw9pqljpwg9";
+    url = "http://cgm.cs.mcgill.ca/~avis/C/lrslib/archive/lrslib-072.tar.gz";
+    sha256 = "1w1jsnfgny8cihndr5gfm99pvwp48qsvxkqfsi2q87gd3m57aj7w";
   };
 
   buildInputs = [ gmp ];
diff --git a/pkgs/development/libraries/xdg-dbus-proxy/default.nix b/pkgs/development/libraries/xdg-dbus-proxy/default.nix
index 95373934a47a6..b027c95a7e4bc 100644
--- a/pkgs/development/libraries/xdg-dbus-proxy/default.nix
+++ b/pkgs/development/libraries/xdg-dbus-proxy/default.nix
@@ -1,8 +1,11 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchurl
+, meson
+, ninja
 , pkg-config
 , libxslt
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 , dbus
 , glib
@@ -10,17 +13,19 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-dbus-proxy";
-  version = "0.1.3";
+  version = "0.1.4";
 
   src = fetchurl {
     url = "https://github.com/flatpak/xdg-dbus-proxy/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-A7XSjKh5JT3bvOMQmJCb7MoUleqBGmN3pJLijxbAm5s=";
+    sha256 = "sha256-HsDqtT0eSZZtciNSvP1RrEAtzlGQuu3HSahUHnYWcKs=";
   };
 
   nativeBuildInputs = [
+    meson
+    ninja
     pkg-config
     libxslt
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
   ];
 
@@ -32,10 +37,6 @@ stdenv.mkDerivation rec {
     dbus
   ];
 
-  configureFlags = [
-    "--enable-man"
-  ];
-
   # dbus[2345]: Failed to start message bus: Failed to open "/etc/dbus-1/session.conf": No such file or directory
   doCheck = false;
 
diff --git a/pkgs/development/ocaml-modules/easy-format/default.nix b/pkgs/development/ocaml-modules/easy-format/default.nix
index a3fb972296577..7e3fe5f483ec2 100644
--- a/pkgs/development/ocaml-modules/easy-format/default.nix
+++ b/pkgs/development/ocaml-modules/easy-format/default.nix
@@ -1,12 +1,22 @@
-{ lib, fetchurl, buildDunePackage }:
+{ lib, fetchurl, ocaml, buildDunePackage }:
+
+let params =
+  if lib.versionAtLeast ocaml.version "4.08" then {
+    version = "1.3.3";
+    sha256 = "sha256:05n4mm1yz33h9gw811ivjw7x4m26lpmf7kns9lza4v6227lwmz7a";
+  } else {
+    version = "1.3.2";
+    sha256 = "sha256:09hrikx310pac2sb6jzaa7k6fmiznnmhdsqij1gawdymhawc4h1l";
+  };
+in
 
 buildDunePackage rec {
   pname = "easy-format";
-  version = "1.3.2";
+  inherit (params) version;
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/easy-format/releases/download/${version}/easy-format-${version}.tbz";
-    sha256 = "sha256:09hrikx310pac2sb6jzaa7k6fmiznnmhdsqij1gawdymhawc4h1l";
+    inherit (params) sha256;
   };
 
   doCheck = true;
diff --git a/pkgs/development/python-modules/ansible-compat/default.nix b/pkgs/development/python-modules/ansible-compat/default.nix
index 88ce74ad4cd0e..5440359af7225 100644
--- a/pkgs/development/python-modules/ansible-compat/default.nix
+++ b/pkgs/development/python-modules/ansible-compat/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ansible-compat";
-  version = "2.0.3";
+  version = "2.0.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-oRV+QFneQYefP2XV7WK/ND/lvUUoYQHi0pcf/lfjqKU=";
+    sha256 = "sha256-PV+yHB/waehKxfwX9sjSJhwqeymZhr6BDTOd/HfBKKk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index 6a667d468b5a4..bae168e26dd42 100644
--- a/pkgs/development/python-modules/azure-core/default.nix
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildPythonPackage, fetchpatch, fetchPypi, isPy27
+{ lib, stdenv, buildPythonPackage, fetchpatch, fetchPypi, pythonOlder
 , aiodns
 , aiohttp
 , flask
@@ -17,7 +17,7 @@
 buildPythonPackage rec {
   version = "1.24.0";
   pname = "azure-core";
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index f2426586d6a0c..d5fe92f320b09 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "4.2.0";
+  version = "5.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    hash = "sha256-At0BP9mWJneG65FDZuQXTnikaNcEWe+GtTr9ZPri89M=";
+    hash = "sha256-BciA3sFyja5xo9yS3WVglC73y8gTfw8UejdEzbD4HYE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index 9bafac41ef33e..84114684476ce 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.8.0";
+  version = "0.9.0";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZRiqnxPRdSOqyRMwuvxqKiZcxMbhVEYJ09CIlepc/B4=";
+    sha256 = "sha256-7uq8uRZ3MXI1Gy+DmMkRVNV7uZPw6j8r9KfhS8d+tCY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/bc-python-hcl2/default.nix b/pkgs/development/python-modules/bc-python-hcl2/default.nix
index 8d5c2d7d4c265..56773e372b40d 100644
--- a/pkgs/development/python-modules/bc-python-hcl2/default.nix
+++ b/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "bc-python-hcl2";
-  version = "0.3.39";
+  version = "0.3.40";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JMQ2sLgAnMJ1/0nR8LgKbpPB43gVKtCtrZKr/T4p0O8=";
+    hash = "sha256-4we2Txk7kJ1SrCa82eQJ9OsqyTkFzocNi+GG7cV+OAc=";
   };
 
   # Nose is required during build process, so can not use `checkInputs`.
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index ace2e2166d7ea..fa2880fb0553c 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.2.0";
+  version = "4.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NnTn4m9we40Ww2abP7mbz1CtdypZyN2GYBvj8zxhOpI=";
+    hash = "sha256-PT6XaKz3QFAEhCmS7jXKK7xxscNlpbhGpCKQIRuSt6U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 2eff37314e83d..6111772122716 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -1,8 +1,9 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k
-, python, twisted, jinja2, zope_interface, sqlalchemy, alembic, python-dateutil
-, txaio, autobahn, pyjwt, pyyaml, unidiff, treq, txrequests, pypugjs, boto3
-, moto, mock, lz4, setuptoolsTrial, isort, pylint, flake8, buildbot-worker
-, buildbot-pkg, buildbot-plugins, parameterized, git, openssh, glibcLocales
+, python, twisted, jinja2, msgpack, zope_interface, sqlalchemy, alembic
+, python-dateutil, txaio, autobahn, pyjwt, pyyaml, treq, txrequests, pypugjs
+, boto3, moto, mock, lz4, setuptoolsTrial, isort, pylint, flake8
+, buildbot-worker, buildbot-pkg, buildbot-plugins, parameterized, git, openssh
+, glibcLocales
 , nixosTests
 }:
 
@@ -42,6 +43,7 @@ let
       # core
       twisted
       jinja2
+      msgpack
       zope_interface
       sqlalchemy
       alembic
@@ -50,7 +52,6 @@ let
       autobahn
       pyjwt
       pyyaml
-      unidiff
     ]
       # tls
       ++ twisted.extras-require.tls;
diff --git a/pkgs/development/python-modules/cachelib/default.nix b/pkgs/development/python-modules/cachelib/default.nix
index 9c0620c8740dd..5a5c001c135df 100644
--- a/pkgs/development/python-modules/cachelib/default.nix
+++ b/pkgs/development/python-modules/cachelib/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "cachelib";
-  version = "0.6.0";
+  version = "0.7.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pallets";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-1msDiNYxaETJfVBTaMuNJbSxhOpyRdHkb5CQ+1+ZbbQ=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-/378xNkBZHoTJ9Qs8RTYi+QosLs7GBgMOkIDYOaSH1Y=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 436669d920924..5535f577bcff4 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -72,6 +72,7 @@ buildPythonPackage rec {
   ] ++ lib.optionals stdenv.isDarwin [
     "http_over_https_error"
     "bind_addr_unix"
+    "test_ssl_env"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 73609966ba84a..033af1fb5d924 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QURm/ehJovqr/ZRE7ILKLnvxQsAdcjdSTPlzCt60IBw=";
+    sha256 = "sha256-bWdkJkPR3bLyr1m0Zrh9QsSi42eDGte0PDO1nu+ltQ4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/django-anymail/default.nix b/pkgs/development/python-modules/django-anymail/default.nix
index 86134f9d17899..83c89b53c97d8 100644
--- a/pkgs/development/python-modules/django-anymail/default.nix
+++ b/pkgs/development/python-modules/django-anymail/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "django-anymail";
-  version = "8.5";
+  version = "8.6";
 
   src = fetchFromGitHub {
     owner = "anymail";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1p2c7hf9baxr8khk8h7y8d38imw4zm920dgd9nbda18vlh7gpbcf";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-hLNILUV7qzqHfh7l3SJAoFveUIRSCHTjEQ3ZC3PhZUY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index a255d3c4f9b9d..479af3a676fd4 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -12,11 +12,12 @@
 , mock
 , pkgs
 , urllib3
+, paramiko
 , pythonOlder
 }:
 
 buildPythonPackage rec {
-  version = "0.20.35";
+  version = "0.20.36";
   pname = "dulwich";
   format = "setuptools";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lT9jAanfigkfqI1V7tOUqIv5mIzei+NBd1NUkQkYwZY=";
+    hash = "sha256-2s7xVJwSdffS1v7NLyz6O6ozB9AJpRTAwjIDP2uqXSE=";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -43,6 +44,7 @@ buildPythonPackage rec {
     gpgme
     pkgs.gnupg
     mock
+    paramiko
   ];
 
   doCheck = !stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index e86013605e7b1..a9781b3aea150 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.4.2";
+  version = "1.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-0q+qFrfMsXkwgu08igt2kHZ9c3/aqz/inCpJXkPZsdg=";
+    sha256 = "sha256-3l5bELb5f/cvh4gF2kJZEX6kAK9achTerIIplMuesTk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index fb84371e20357..7ff1577488914 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -7,6 +7,8 @@
 , numpy
 , aiohttp
 , pytest-vcr
+, pytest-mock
+, pytest-asyncio
 , requests
 , paramiko
 , smbprotocol
@@ -14,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2022.01.0";
+  version = "2022.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "sha256-iPe2q9hY3ZRIKQGpxrHda3t9G0AtbtohVcWdnAzlzCo=";
+    sha256 = "sha256-jTF8R0kaHMsCYg+7YFi21Homn63K+ulp9NDZC/jkIXM=";
   };
 
   propagatedBuildInputs = [
@@ -34,6 +36,8 @@ buildPythonPackage rec {
   checkInputs = [
     numpy
     pytest-vcr
+    pytest-mock
+    pytest-asyncio
     pytestCheckHook
   ];
 
@@ -59,6 +63,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/intake/filesystem_spec";
     description = "A specification that Python filesystems should adhere to";
+    changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
     maintainers = [ maintainers.costrouc ];
   };
diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix
index 101a3ef53d6d9..6947808c62e50 100644
--- a/pkgs/development/python-modules/gcal-sync/default.nix
+++ b/pkgs/development/python-modules/gcal-sync/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gcal-sync";
-  version = "0.7.1";
+  version = "0.8.0";
 
   disabled = pythonOlder "3.9";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "gcal_sync";
     rev = version;
-    hash = "sha256-NOB74P+5i63FEeHJsPXRdRgY6iyIUEn7BogbVKm8P5M=";
+    hash = "sha256-Qk4WlMVyzOK2uyrUlJw9Q8ENtNT3PZ7FKTlCtPsm2v0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graphtage/default.nix b/pkgs/development/python-modules/graphtage/default.nix
index 500d157427d1c..a1bec8f3a1f40 100644
--- a/pkgs/development/python-modules/graphtage/default.nix
+++ b/pkgs/development/python-modules/graphtage/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "graphtage";
-  version = "0.2.5";
+  version = "0.2.6";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "trailofbits";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-cFOTbPv7CnRdet7bx5LVq5xp9LG4yNm0oxlW5aSEeZs=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-ZazqtrrCsoeJK7acj7Unpl+ZI2JL/khMN2aOSHdCHl0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hatchling/default.nix b/pkgs/development/python-modules/hatchling/default.nix
index 1a95d20cff707..6385b32a48cfe 100644
--- a/pkgs/development/python-modules/hatchling/default.nix
+++ b/pkgs/development/python-modules/hatchling/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "hatchling";
-  version = "0.24.0";
+  version = "0.25.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -29,7 +29,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zmdl9bW688tX0vgBlsUOIB43KMrNlTU/XJtPA9/fTrk=";
+    hash = "sha256-k/bjZvGaOjZshVr6w3Jb7XaC1dAOlIaraFQKCth2ZII=";
   };
 
   # listed in backend/src/hatchling/ouroboros.py
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index 71aad2650f369..045910d8a1a8e 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.5.7";
+  version = "3.5.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "abdullahselek";
     repo = "HerePy";
-    rev = version;
-    hash = "sha256-iPFFEFGH3csqzDtBtLkVkUezObwiMHNbiD/mTgIrdpo=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BwuH3GxEXiIFFM0na8Jhgp7J5TPW41/u89LWf+EprG4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index 3f65b9291ae65..3211aed644e08 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{ lib, buildPythonPackage, fetchPypi, yajl, cffi, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "ijson";
@@ -9,7 +9,11 @@ buildPythonPackage rec {
     sha256 = "1d1003ae3c6115ec9b587d29dd136860a81a23c7626b682e2b5b12c9fd30e4ea";
   };
 
-  doCheck = false; # something about yajl
+  buildInputs = [ yajl ];
+  propagatedBuildInputs = [ cffi ];
+  checkInputs = [ pytestCheckHook ];
+
+  doCheck = true;
 
   meta = with lib; {
     description = "Iterative JSON parser with a standard Python iterator interface";
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index 226fea5b621dc..d17a4a85c3bc5 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.9.0";
+  version = "0.9.1";
   format = "wheel";
 
   src = fetchPypi {
     inherit pname version format;
-    sha256 = "sha256-HpO3T/zRbimxd1+nUkbSmclj7nPsMYuSUK0VJItZQs4=";
+    sha256 = "sha256-NQW0ctQSF4/RFeJVdk0efnYy1sgunebWKyVDijU3RoA=";
   };
 
 
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 2f14ed863c3eb..27ec85a1f4d12 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "manuel";
-  version = "1.10.1";
+  version = "1.11.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bdzay7j70fly5fy6wbdi8fbrxjrrlxnxnw226rwry1c8a351rpy";
+    sha256 = "sha256-nJt3WMQ66oa3VlW5InJCzOea96Wf7WwxSbBp9WIfzqc=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/mt-940/default.nix b/pkgs/development/python-modules/mt-940/default.nix
index e169929294426..3b63b02986a2c 100644
--- a/pkgs/development/python-modules/mt-940/default.nix
+++ b/pkgs/development/python-modules/mt-940/default.nix
@@ -3,12 +3,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.23.0";
+  version = "4.26.0";
   pname = "mt-940";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9274bc8298b2d4b69cb3936bdcda315b50e45975789f519a237bdec58346b8d7";
+    sha256 = "sha256-HL56TXZNkjVnap0XIhBT/xDA2N80NLCLpvuXkxXu6zE=";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) enum34;
diff --git a/pkgs/development/python-modules/numpy-stl/default.nix b/pkgs/development/python-modules/numpy-stl/default.nix
index 312170ee36c2a..f1af4662a9d85 100644
--- a/pkgs/development/python-modules/numpy-stl/default.nix
+++ b/pkgs/development/python-modules/numpy-stl/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "numpy-stl";
-  version = "2.16.3";
+  version = "2.17.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "95890627001efb2cb8d17418730cdc1bdd64b8dbb9862b01a8e0359d79fe863e";
+    sha256 = "sha256-G42ak4w4OAbE2RTe3STN03A43/rZqJBbB8rBm0TlOWU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 6700b88479db8..405748599ab43 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "13.4.3";
+  version = "13.4.4";
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-kriT3NV9Lj44WjOeK6+pILjfRMt9QMcKU57si394xxI=";
+    hash = "sha256-uFKnohUxh17h6u0vwVB7EaTEh5NRowP8a6za63Ehodk=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index 582d0c815a7c1..54ad2eaf724f9 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -59,16 +59,6 @@ buildPythonPackage rec {
   # https://github.com/NixOS/nixpkgs/issues/39687
   hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
-  # For OSX, we need to add a dependency on libcxx, which provides
-  # `complex.h` and other libraries that pandas depends on to build.
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    cpp_sdk="${lib.getDev libcxx}/include/c++/v1";
-    echo "Adding $cpp_sdk to the setup.py common_include variable"
-    substituteInPlace setup.py \
-      --replace "['pandas/src/klib', 'pandas/src']" \
-                "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
-  '';
-
   doCheck = !stdenv.isAarch32 && !stdenv.isAarch64; # upstream doesn't test this architecture
 
   # don't max out build cores, it breaks tests
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index c871a7bccb850..b3ac256e0bb53 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.26.1";
+  version = "1.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zNK2/hkK3ddMCTpivgcwuemfPqA6oO96uV7Rt/9p0lc=";
+    sha256 = "sha256-Q1E949TjeOc6xEKpOQa6qdNWJFqmeqf2FgXFbjmn9ZE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 0b72031a4bc7c..b86dabee9f2a0 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "5.1.2";
+  version = "5.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -40,7 +40,7 @@ buildPythonPackage rec {
     extraPostFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-VR2/+XCQb62FdkGZBxP2XTqatdFYZO1ngb8gvoJEvzs=";
+    hash = "sha256-jkAwc1bQ1jRDf/qY+xAjiLXXO98qKjyX+J7Lu4tYWoI=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
index bdc484fd1bb3c..ff730f834d727 100644
--- a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
+++ b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "poetry-dynamic-versioning";
-  version = "0.16.0";
+  version = "0.17.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-dLtZSm10OYWLRK4eRo83RczW0zBVAUF0HQXLQbeDJCk=";
+    hash = "sha256-u4rqkwy5C1+OrHJUsc/9Sy3YyxWlsTv8cbB1bBKh2K4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pylsp-mypy/default.nix b/pkgs/development/python-modules/pylsp-mypy/default.nix
index c855127079773..5358b18402f2b 100644
--- a/pkgs/development/python-modules/pylsp-mypy/default.nix
+++ b/pkgs/development/python-modules/pylsp-mypy/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "pylsp-mypy";
-  version = "0.5.7";
+  version = "0.5.8";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Richardk2n";
     repo = "pylsp-mypy";
-    rev = version;
-    sha256 = "0am16z9kmj57r5pi32jhzlbdngzmvzzaiqjm7cba1izh7w5m6dvc";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-Yu1e/8gYFYEZ/IoFo8WnyRNYkCZ9i7NgjEjYBbagWMA=";
   };
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/pyrfxtrx/default.nix b/pkgs/development/python-modules/pyrfxtrx/default.nix
index 30dd52e3eeaf8..663440965fd3b 100644
--- a/pkgs/development/python-modules/pyrfxtrx/default.nix
+++ b/pkgs/development/python-modules/pyrfxtrx/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pyrfxtrx";
-  version = "0.28.0";
+  version = "0.29.0";
 
   src = fetchFromGitHub {
     owner = "Danielhiversen";
     repo = "pyRFXtrx";
     rev = version;
-    hash = "sha256-Ty+yIA8amKyV3z++7n1m/YRH0gEoVIVTdX8xiZYp/eM=";
+    hash = "sha256-0tdT7UIT9F2z9+ufnzaACVxRybWxFjZObYQCd3hcXTk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyrogram/default.nix b/pkgs/development/python-modules/pyrogram/default.nix
index 37e6467c4a793..ae79f36a06cf3 100644
--- a/pkgs/development/python-modules/pyrogram/default.nix
+++ b/pkgs/development/python-modules/pyrogram/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyrogram";
-  version = "2.0.23";
+  version = "2.0.24";
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pyrogram";
     repo = "pyrogram";
     rev = "v${version}";
-    hash = "sha256-+qJfqC6jLfrPwXl6zR7b21jY/s9leWeBxVgMa1IDRg4=";
+    hash = "sha256-YcVVXaPM+X+9prjgRYYSs8dkho3YKvtn/0FNJVnsrGM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index fdae8fdc10441..410e52372652e 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.15.13";
+  version = "0.15.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "teZ8udox+4NefgA73gD5d6hPur/zjCapoMYPW36ax0s=";
+    sha256 = "z0PVjVzmAb5cgBdXWMxOdsy0VMMkmewHZaPNBYivXSA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index ddccb4d78657a..590f9a835930d 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -15,7 +15,7 @@
 
 let
   pname = "torchmetrics";
-  version = "0.8.1";
+  version = "0.8.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -23,8 +23,8 @@ buildPythonPackage {
   src = fetchFromGitHub {
     owner = "PyTorchLightning";
     repo = "metrics";
-    rev = "v${version}";
-    hash = "sha256-AryEhYAeC97dO2pgHoz0Y9F//DVdX6RfCa80gI56iz4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1TO2YgZzjVmrE5jhMwo0Y+bQUQ5jJj34k+kGpdqqPVQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
index 382e90e14c82d..39f8629a5b1e4 100644
--- a/pkgs/development/python-modules/twentemilieu/default.nix
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "twentemilieu";
-  version = "0.6.0";
+  version = "0.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-twentemilieu";
     rev = "v${version}";
-    sha256 = "sha256-UE7fhbSThXmMns1XfUUQqw0wn5/w/x+UncansIBiank=";
+    sha256 = "sha256-k2jdw2H/bNejNUjIEQlEA1KkHHpkyFlSDC1HKUoMIqQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index bb7e12d5963df..437950677297a 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.27.25";
+  version = "2.27.26";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gFrn44/Z0VcVMGbcQ4HPWF/TTfohLy/B/s4kjAWqxXE=";
+    sha256 = "sha256-pqBMAnTAlJ/QUl812LU6w053r+y+s8STLdxs5nWsAJw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index eadeec8accebb..743405be6a7ca 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,13 +32,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.1140";
+  version = "2.0.1143";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-aGO5mjBsUwpLIv73pZH1la6tyGByznTrjkW9dojkXwg=";
+    hash = "sha256-Kl9/wbjiQ46ysmnE24iQveTEzSTsVF5FHRqG3WWz3DQ=";
   };
 
   nativeBuildInputs = with py.pkgs; [
@@ -94,6 +94,7 @@ buildPythonApplication rec {
 
   postPatch = ''
     substituteInPlace setup.py \
+      --replace "bc-python-hcl2==0.3.39" "bc-python-hcl2>=0.3.39" \
       --replace "cyclonedx-python-lib>=0.11.0,<1.0.0" "cyclonedx-python-lib>=0.11.0" \
       --replace "prettytable>=3.0.0" "prettytable" \
       --replace "pycep-parser==0.3.4" "pycep-parser"
diff --git a/pkgs/development/tools/build-managers/corrosion/default.nix b/pkgs/development/tools/build-managers/corrosion/default.nix
index 9f0421d3eee53..51cc427ff1997 100644
--- a/pkgs/development/tools/build-managers/corrosion/default.nix
+++ b/pkgs/development/tools/build-managers/corrosion/default.nix
@@ -8,27 +8,22 @@
 
 stdenv.mkDerivation rec {
   pname = "corrosion";
-  version = "unstable-2021-11-23";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
-    owner = "AndrewGaspar";
+    owner = "corrosion-rs";
     repo = "corrosion";
-    rev = "f679545a63a8b214a415e086f910126ab66714fa";
-    sha256 = "sha256-K+QdhWc5n5mH6yxiQa/v5HsrqnWJ5SM93IprVpyCVO0=";
+    rev = "v${version}";
+    hash = "sha256-nJ4ercNykECDBqecuL8cdCl4DHgbgIUmbiFBG/jiOaA=";
   };
 
-  patches = [
-    # https://github.com/AndrewGaspar/corrosion/issues/84
-    ./cmake-install-full-dir.patch
-  ];
-
   cargoRoot = "generator";
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "sha256-ZvCRgXv+ASMIL00oc3luegV1qVNDieU9J7mbIhfayGk=";
+    hash = "sha256-4JVbHYlMOKztWPYW7tXQdvdNh/ygfpi0CY6Ly93VxsI=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
@@ -50,7 +45,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Tool for integrating Rust into an existing CMake project";
-    homepage = "https://github.com/AndrewGaspar/corrosion";
+    homepage = "https://github.com/corrosion-rs/corrosion";
+    changelog = "https://github.com/corrosion-rs/corrosion/blob/${src.rev}/RELEASES.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/tools/cocoapods/Gemfile b/pkgs/development/tools/cocoapods/Gemfile
index 329b51518e4cf..00a6b3f80ebbe 100644
--- a/pkgs/development/tools/cocoapods/Gemfile
+++ b/pkgs/development/tools/cocoapods/Gemfile
@@ -1,3 +1,3 @@
-source 'https://rubygems.org' do
-  gem 'cocoapods'
-end
+source 'https://rubygems.org'
+
+gem 'cocoapods'
diff --git a/pkgs/development/tools/cocoapods/Gemfile-beta b/pkgs/development/tools/cocoapods/Gemfile-beta
index dd4b350b4372c..d8a7e8bb2e25b 100644
--- a/pkgs/development/tools/cocoapods/Gemfile-beta
+++ b/pkgs/development/tools/cocoapods/Gemfile-beta
@@ -1,5 +1,5 @@
-source 'https://rubygems.org' do
-  # We need to specify a version including prerelease to pick up prereleases.
-  # This should pick up all future releases / prereleases.
-  gem 'cocoapods', '>=1.7.0.beta.1'
-end
+source 'https://rubygems.org'
+
+# We need to specify a version including prerelease to pick up prereleases.
+# This should pick up all future releases / prereleases.
+gem 'cocoapods', '>=1.7.0.beta.1'
diff --git a/pkgs/development/tools/cocoapods/Gemfile-beta.lock b/pkgs/development/tools/cocoapods/Gemfile-beta.lock
index 3904e6acf98ab..e0c2ff1707001 100644
--- a/pkgs/development/tools/cocoapods/Gemfile-beta.lock
+++ b/pkgs/development/tools/cocoapods/Gemfile-beta.lock
@@ -1,11 +1,9 @@
 GEM
-  specs:
-
-GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.3)
-    activesupport (6.1.4.1)
+    CFPropertyList (3.0.5)
+      rexml
+    activesupport (6.1.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -17,11 +15,11 @@ GEM
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
-    claide (1.0.3)
-    cocoapods (1.11.0)
+    claide (1.1.0)
+    cocoapods (1.11.3)
       addressable (~> 2.8)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.11.0)
+      cocoapods-core (= 1.11.3)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -36,7 +34,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (>= 1.0, < 3.0)
       xcodeproj (>= 1.21.0, < 2.0)
-    cocoapods-core (1.11.0)
+    cocoapods-core (1.11.3)
       activesupport (>= 5.0, < 7)
       addressable (~> 2.8)
       algoliasearch (~> 1.0)
@@ -47,7 +45,7 @@ GEM
       public_suffix (~> 4.0)
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.5)
-    cocoapods-downloader (1.5.1)
+    cocoapods-downloader (1.6.3)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.1)
@@ -56,24 +54,24 @@ GEM
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     escape (0.0.4)
-    ethon (0.14.0)
+    ethon (0.15.0)
       ffi (>= 1.15.0)
-    ffi (1.15.4)
+    ffi (1.15.5)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (1.8.10)
+    i18n (1.10.0)
       concurrent-ruby (~> 1.0)
-    json (2.5.1)
-    minitest (5.14.4)
+    json (2.6.2)
+    minitest (5.15.0)
     molinillo (0.8.0)
     nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     rexml (3.2.5)
     ruby-macho (2.5.1)
     typhoeus (1.4.0)
@@ -87,13 +85,13 @@ GEM
       colored2 (~> 3.1)
       nanaimo (~> 0.3.0)
       rexml (~> 3.2.4)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  cocoapods (>= 1.7.0.beta.1)!
+  cocoapods (>= 1.7.0.beta.1)
 
 BUNDLED WITH
    2.2.20
diff --git a/pkgs/development/tools/cocoapods/Gemfile.lock b/pkgs/development/tools/cocoapods/Gemfile.lock
index 2cc06eac27378..293fe9406a946 100644
--- a/pkgs/development/tools/cocoapods/Gemfile.lock
+++ b/pkgs/development/tools/cocoapods/Gemfile.lock
@@ -1,11 +1,9 @@
 GEM
-  specs:
-
-GEM
   remote: https://rubygems.org/
   specs:
-    CFPropertyList (3.0.3)
-    activesupport (6.1.4.1)
+    CFPropertyList (3.0.5)
+      rexml
+    activesupport (6.1.6)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 1.6, < 2)
       minitest (>= 5.1)
@@ -17,11 +15,11 @@ GEM
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
-    claide (1.0.3)
-    cocoapods (1.11.0)
+    claide (1.1.0)
+    cocoapods (1.11.3)
       addressable (~> 2.8)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.11.0)
+      cocoapods-core (= 1.11.3)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -36,7 +34,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (>= 1.0, < 3.0)
       xcodeproj (>= 1.21.0, < 2.0)
-    cocoapods-core (1.11.0)
+    cocoapods-core (1.11.3)
       activesupport (>= 5.0, < 7)
       addressable (~> 2.8)
       algoliasearch (~> 1.0)
@@ -47,7 +45,7 @@ GEM
       public_suffix (~> 4.0)
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.5)
-    cocoapods-downloader (1.5.1)
+    cocoapods-downloader (1.6.3)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.1)
@@ -56,24 +54,24 @@ GEM
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.9)
+    concurrent-ruby (1.1.10)
     escape (0.0.4)
-    ethon (0.14.0)
+    ethon (0.15.0)
       ffi (>= 1.15.0)
-    ffi (1.15.4)
+    ffi (1.15.5)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (1.8.10)
+    i18n (1.10.0)
       concurrent-ruby (~> 1.0)
-    json (2.5.1)
-    minitest (5.14.4)
+    json (2.6.2)
+    minitest (5.15.0)
     molinillo (0.8.0)
     nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     rexml (3.2.5)
     ruby-macho (2.5.1)
     typhoeus (1.4.0)
@@ -87,13 +85,13 @@ GEM
       colored2 (~> 3.1)
       nanaimo (~> 0.3.0)
       rexml (~> 3.2.4)
-    zeitwerk (2.4.2)
+    zeitwerk (2.5.4)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
-  cocoapods!
+  cocoapods
 
 BUNDLED WITH
    2.2.20
diff --git a/pkgs/development/tools/cocoapods/gemset-beta.nix b/pkgs/development/tools/cocoapods/gemset-beta.nix
index e1f573b89c31e..3091a85e0cceb 100644
--- a/pkgs/development/tools/cocoapods/gemset-beta.nix
+++ b/pkgs/development/tools/cocoapods/gemset-beta.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "08wzpwgdm03vzb8gqr8bvfdarb89g5ah0skvwqk6qv87p55xqkyw";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.6";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -43,24 +43,25 @@
     version = "0.1.3";
   };
   CFPropertyList = {
+    dependencies = ["rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
+      sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7";
       type = "gem";
     };
-    version = "3.0.3";
+    version = "3.0.5";
   };
   claide = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+      sha256 = "0bpqhc0kqjp1bh9b7ffc395l9gfls0337rrhmab4v46ykl45qg3d";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   cocoapods = {
     dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
@@ -68,10 +69,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b8773v98vkcr55yx5ydc28wq8ya53ya1v51cj7fxg5n3aa5h0cz";
+      sha256 = "0cix57b2si8lc1m15mzg3mr1kmvn5sq0cy01vqwlfvvirrkf3ky3";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.11.3";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -79,10 +80,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19bik6yj125vhq0vxb6fsb41b3i2bi4437l7dkhgrw317gx3wf9b";
+      sha256 = "1lqcq7pk3znc9par217h4hv8g70w25m2a2llgyayp30dlgdj45iy";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.11.3";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -99,10 +100,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "161sjpyxipnbhwcr5kyfbcdbzs9zq20sigsazjm782cn3s466p0z";
+      sha256 = "0jgipkiah3z6qb9ax6qac3b2m1idavd5adc319k5rjsfddpfgszh";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.6.3";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -161,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   escape = {
     groups = ["default"];
@@ -182,20 +183,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
+      sha256 = "0kd7c61f28f810fgxg480j7457nlvqarza9c2ra0zhav0dd80288";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.15.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
+      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
       type = "gem";
     };
-    version = "1.15.4";
+    version = "1.15.5";
   };
   fourflusher = {
     groups = ["default"];
@@ -243,30 +244,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.10.0";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
+      sha256 = "0yk5d10yvspkc5jyvx9gc1a9pn1z8v4k2hvjk1l88zixwf3wf3cl";
       type = "gem";
     };
-    version = "2.5.1";
+    version = "2.6.2";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   molinillo = {
     groups = ["default"];
@@ -313,10 +314,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   rexml = {
     groups = ["default"];
@@ -376,9 +377,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.4";
   };
 }
diff --git a/pkgs/development/tools/cocoapods/gemset.nix b/pkgs/development/tools/cocoapods/gemset.nix
index 7d74b857cf5c5..533535ff013b7 100644
--- a/pkgs/development/tools/cocoapods/gemset.nix
+++ b/pkgs/development/tools/cocoapods/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19gx1jcq46x9d1pi1w8xq0bgvvfw239y4lalr8asm291gj3q3ds4";
+      sha256 = "08wzpwgdm03vzb8gqr8bvfdarb89g5ah0skvwqk6qv87p55xqkyw";
       type = "gem";
     };
-    version = "6.1.4.1";
+    version = "6.1.6";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -41,24 +41,25 @@
     version = "0.1.3";
   };
   CFPropertyList = {
+    dependencies = ["rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ia09r8bj3bjhcfiyr3vlk9zx7vahfypbs2lyrxix9x1jx3lfzq4";
+      sha256 = "193l8r1ycd3dcxa7lsb4pqcghbk56dzc5244m6y8xmv88z6m31d7";
       type = "gem";
     };
-    version = "3.0.3";
+    version = "3.0.5";
   };
   claide = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kasxsms24fgcdsq680nz99d5lazl9rmz1qkil2y5gbbssx89g0z";
+      sha256 = "0bpqhc0kqjp1bh9b7ffc395l9gfls0337rrhmab4v46ykl45qg3d";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "1.1.0";
   };
   cocoapods = {
     dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
@@ -66,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b8773v98vkcr55yx5ydc28wq8ya53ya1v51cj7fxg5n3aa5h0cz";
+      sha256 = "0cix57b2si8lc1m15mzg3mr1kmvn5sq0cy01vqwlfvvirrkf3ky3";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.11.3";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
@@ -77,10 +78,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19bik6yj125vhq0vxb6fsb41b3i2bi4437l7dkhgrw317gx3wf9b";
+      sha256 = "1lqcq7pk3znc9par217h4hv8g70w25m2a2llgyayp30dlgdj45iy";
       type = "gem";
     };
-    version = "1.11.0";
+    version = "1.11.3";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -97,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "161sjpyxipnbhwcr5kyfbcdbzs9zq20sigsazjm782cn3s466p0z";
+      sha256 = "0jgipkiah3z6qb9ax6qac3b2m1idavd5adc319k5rjsfddpfgszh";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.6.3";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -155,10 +156,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      sha256 = "0s4fpn3mqiizpmpy2a24k4v365pv75y50292r8ajrv4i1p5b2k14";
       type = "gem";
     };
-    version = "1.1.9";
+    version = "1.1.10";
   };
   escape = {
     source = {
@@ -174,20 +175,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bby4hbq96vnzcdbbybcbddin8dxdnj1ns758kcr4akykningqhh";
+      sha256 = "0kd7c61f28f810fgxg480j7457nlvqarza9c2ra0zhav0dd80288";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "0.15.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ssxcywmb3flxsjdg13is6k01807zgzasdhj4j48dm7ac59cmksn";
+      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
       type = "gem";
     };
-    version = "1.15.4";
+    version = "1.15.5";
   };
   fourflusher = {
     groups = ["default"];
@@ -231,30 +232,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
       type = "gem";
     };
-    version = "1.8.10";
+    version = "1.10.0";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lrirj0gw420kw71bjjlqkqhqbrplla61gbv1jzgsz6bv90qr3ci";
+      sha256 = "0yk5d10yvspkc5jyvx9gc1a9pn1z8v4k2hvjk1l88zixwf3wf3cl";
       type = "gem";
     };
-    version = "2.5.1";
+    version = "2.6.2";
   };
   minitest = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
       type = "gem";
     };
-    version = "5.14.4";
+    version = "5.15.0";
   };
   molinillo = {
     groups = ["default"];
@@ -297,10 +298,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   rexml = {
     groups = ["default"];
@@ -360,9 +361,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
+      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.4";
   };
 }
diff --git a/pkgs/development/tools/dump_syms/default.nix b/pkgs/development/tools/dump_syms/default.nix
index a8c6821f27f4a..08788878cc988 100644
--- a/pkgs/development/tools/dump_syms/default.nix
+++ b/pkgs/development/tools/dump_syms/default.nix
@@ -1,8 +1,12 @@
 { lib
+, stdenv
 , rustPlatform
 , fetchFromGitHub
 , pkg-config
 , openssl
+
+# darwin
+, Security
 }:
 
 let
@@ -27,6 +31,8 @@ rustPlatform.buildRustPackage {
 
   buildInputs = [
     openssl
+  ] ++ lib.optionals (stdenv.isDarwin) [
+    Security
   ];
 
   checkFlags = [
diff --git a/pkgs/development/tools/jl/default.nix b/pkgs/development/tools/jl/default.nix
index bc41263e96f5e..18bb6964adab9 100644
--- a/pkgs/development/tools/jl/default.nix
+++ b/pkgs/development/tools/jl/default.nix
@@ -5,21 +5,8 @@
 }:
 mkDerivation rec {
   pname = "jl";
-  version = "0.0.5";
-  src = fetchFromGitHub {
-    owner = "chrisdone";
-    repo = "jl";
-    rev = "v${version}";
-    sha256 = "1hlnwsl4cj0l4x8dxwda2fcnk789cwlphl9gv9cfrivl43mgkgar";
-  };
-  patches = [
-    # MonadFail compatibility patch. Should be removed with the next release
-    (fetchpatch {
-      url = "https://github.com/chrisdone/jl/commit/6d40308811cbc22a96b47ebe69ec308b4e9fd356.patch";
-      sha256 = "1pg92ffkg8kim5r8rz8js6fjqyjisg1266sf7p9jyxjgsskwpa4g";
-    })
-  ];
-
+  version = "0.1.0";
+  sha256 = "15vvn3swjpc5qmdng1fcd8m9nif4qnjmpmxc9hdw5cswzl055lkj";
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
@@ -34,10 +21,4 @@ mkDerivation rec {
   description = "Functional sed for JSON";
   maintainers = with lib.maintainers; [ fgaz ];
   homepage = "https://github.com/chrisdone/jl";
-
-  # jl needs to be updated to work with aeson-2.0.
-  # As far as I can tell, there is unfortunately no where to report issues upstream
-  # for us to be able to track when upstream adds aeson-2.0 support.
-  hydraPlatforms = lib.platforms.none;
-  broken = true;
 }
diff --git a/pkgs/development/tools/ocaml/dune/3.nix b/pkgs/development/tools/ocaml/dune/3.nix
index de661948b9c30..009c3cb6fe206 100644
--- a/pkgs/development/tools/ocaml/dune/3.nix
+++ b/pkgs/development/tools/ocaml/dune/3.nix
@@ -6,11 +6,11 @@ else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "3.1.1";
+  version = "3.2.0";
 
   src = fetchurl {
-    url = "https://github.com/ocaml/dune/releases/download/${version}/fiber-${version}.tbz";
-    sha256 = "sha256-AkhEVKsbmYhAx4c1CexrIwHrkmYsEy749fT1abNaa2A=";
+    url = "https://github.com/ocaml/dune/releases/download/${version}/chrome-trace-${version}.tbz";
+    sha256 = "sha256-vR+85q557R6yb6ibsuLiOXivzrP1P1V4zxvasIoa1bw=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
index 4ffc0a24264eb..ee1793f01cab0 100644
--- a/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
+++ b/pkgs/development/tools/protoc-gen-go-vtproto/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "protoc-gen-go-vtproto";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "planetscale";
     repo = "vtprotobuf";
     rev = "v${version}";
-    sha256 = "0kjjpfsiws4vi36ha1gajb97rwcggqw753mv2jqf09kdfszz9p63";
+    sha256 = "sha256-fOF7n1WeQ3s1S+o5NbAoTUnqqk5IHtKvXCb2o8LmI5U=";
   };
 
-  vendorSha256 = "01lxwlgh3y3gp22gk5qx7r60c1j63pnpi6jnri8gf2lmiiib8fdc";
+  vendorSha256 = "sha256-JpSVO8h7+StLG9/dJQkmrIlh9zIHABoqP1hq+X5ajVs=";
 
   excludedPackages = [ "conformance" ];
 
diff --git a/pkgs/development/tools/sumneko-lua-language-server/default.nix b/pkgs/development/tools/sumneko-lua-language-server/default.nix
index 27606f998d5a4..9e73c566ef892 100644
--- a/pkgs/development/tools/sumneko-lua-language-server/default.nix
+++ b/pkgs/development/tools/sumneko-lua-language-server/default.nix
@@ -4,13 +4,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "sumneko-lua-language-server";
-  version = "3.2.1";
+  version = "3.2.3";
 
   src = fetchFromGitHub {
     owner = "sumneko";
     repo = "lua-language-server";
     rev = version;
-    sha256 = "sha256-rxferVxTWmclviDshHhBmbCezOI+FvcfUW3gAkBQNHQ=";
+    sha256 = "sha256-n54PWkiB+vXAqIOZ5FOTUNgGhAdBs81Q1WYxJ2XIb8o=";
     fetchSubmodules = true;
   };
 
@@ -24,10 +24,10 @@ stdenv.mkDerivation rec {
     darwin.apple_sdk.frameworks.Foundation
   ];
 
-  # Disable cwd support on darwin, because it requires macOS>=10.15
-  preConfigure = lib.optionalString stdenv.isDarwin ''
+  # Disable cwd support on x86 darwin, because it requires macOS>=10.15
+  preConfigure = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
     for file in 3rd/bee.lua/bee/subprocess/subprocess_posix.cpp 3rd/luamake/3rd/bee.lua/bee/subprocess/subprocess_posix.cpp; do
-      substituteInPlace $file --replace '#define SUPPORT_CWD 1' ""
+      substituteInPlace $file --replace '#define USE_POSIX_SPAWN 1' ""
     done
   '';
 
diff --git a/pkgs/development/tools/systemfd/Cargo.nix b/pkgs/development/tools/systemfd/Cargo.nix
deleted file mode 100644
index b6687f1e929a8..0000000000000
--- a/pkgs/development/tools/systemfd/Cargo.nix
+++ /dev/null
@@ -1,215 +0,0 @@
-# Generated by carnix 0.10.0: carnix generate-nix
-{ lib, buildPlatform, buildRustCrate, buildRustCrateHelpers, cratesIO, fetchgit }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
-  crates = cratesIO;
-  systemfd = crates.crates.systemfd."0.3.0" deps;
-  __all = [ (systemfd {}) ];
-  deps.aho_corasick."0.6.4" = {
-    memchr = "2.0.1";
-  };
-  deps.ansi_term."0.11.0" = {
-    winapi = "0.3.4";
-  };
-  deps.atty."0.2.10" = {
-    termion = "1.5.1";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.backtrace."0.3.7" = {
-    cfg_if = "0.1.3";
-    rustc_demangle = "0.1.8";
-    backtrace_sys = "0.1.16";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.backtrace_sys."0.1.16" = {
-    libc = "0.2.40";
-    cc = "1.0.15";
-  };
-  deps.bitflags."1.0.3" = {};
-  deps.byteorder."1.2.3" = {};
-  deps.bytes."0.4.7" = {
-    byteorder = "1.2.3";
-    iovec = "0.1.2";
-  };
-  deps.cc."1.0.15" = {};
-  deps.cfg_if."0.1.3" = {};
-  deps.clap."2.31.2" = {
-    atty = "0.2.10";
-    bitflags = "1.0.3";
-    strsim = "0.7.0";
-    textwrap = "0.9.0";
-    unicode_width = "0.1.4";
-    vec_map = "0.8.1";
-    ansi_term = "0.11.0";
-  };
-  deps.clicolors_control."0.2.0" = {
-    lazy_static = "0.2.11";
-    libc = "0.2.40";
-    kernel32_sys = "0.2.2";
-    winapi = "0.3.4";
-  };
-  deps.console."0.6.1" = {
-    clicolors_control = "0.2.0";
-    lazy_static = "0.2.11";
-    libc = "0.2.40";
-    parking_lot = "0.5.5";
-    regex = "0.2.11";
-    unicode_width = "0.1.4";
-    termios = "0.2.2";
-    winapi = "0.3.4";
-  };
-  deps.failure."0.1.1" = {
-    backtrace = "0.3.7";
-    failure_derive = "0.1.1";
-  };
-  deps.failure_derive."0.1.1" = {
-    quote = "0.3.15";
-    syn = "0.11.11";
-    synstructure = "0.6.1";
-  };
-  deps.fuchsia_zircon."0.3.3" = {
-    bitflags = "1.0.3";
-    fuchsia_zircon_sys = "0.3.3";
-  };
-  deps.fuchsia_zircon_sys."0.3.3" = {};
-  deps.gcc."0.3.54" = {};
-  deps.iovec."0.1.2" = {
-    libc = "0.2.40";
-    winapi = "0.2.8";
-  };
-  deps.kernel32_sys."0.2.2" = {
-    winapi = "0.2.8";
-    winapi_build = "0.1.1";
-  };
-  deps.lazy_static."0.2.11" = {};
-  deps.lazy_static."1.0.0" = {};
-  deps.libc."0.2.40" = {};
-  deps.memchr."2.0.1" = {
-    libc = "0.2.40";
-  };
-  deps.nix."0.10.0" = {
-    bitflags = "1.0.3";
-    bytes = "0.4.7";
-    cfg_if = "0.1.3";
-    libc = "0.2.40";
-    void = "1.0.2";
-  };
-  deps.owning_ref."0.3.3" = {
-    stable_deref_trait = "1.0.0";
-  };
-  deps.parking_lot."0.5.5" = {
-    owning_ref = "0.3.3";
-    parking_lot_core = "0.2.14";
-  };
-  deps.parking_lot_core."0.2.14" = {
-    rand = "0.4.2";
-    smallvec = "0.6.1";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.quote."0.3.15" = {};
-  deps.rand."0.4.2" = {
-    fuchsia_zircon = "0.3.3";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.redox_syscall."0.1.37" = {};
-  deps.redox_termios."0.1.1" = {
-    redox_syscall = "0.1.37";
-  };
-  deps.regex."0.2.11" = {
-    aho_corasick = "0.6.4";
-    memchr = "2.0.1";
-    regex_syntax = "0.5.6";
-    thread_local = "0.3.5";
-    utf8_ranges = "1.0.0";
-  };
-  deps.regex."1.0.0" = {
-    aho_corasick = "0.6.4";
-    memchr = "2.0.1";
-    regex_syntax = "0.6.0";
-    thread_local = "0.3.5";
-    utf8_ranges = "1.0.0";
-  };
-  deps.regex_syntax."0.5.6" = {
-    ucd_util = "0.1.1";
-  };
-  deps.regex_syntax."0.6.0" = {
-    ucd_util = "0.1.1";
-  };
-  deps.rustc_demangle."0.1.8" = {};
-  deps.smallvec."0.6.1" = {};
-  deps.socket2."0.3.5" = {
-    cfg_if = "0.1.3";
-    libc = "0.2.40";
-    winapi = "0.3.4";
-  };
-  deps.stable_deref_trait."1.0.0" = {};
-  deps.strsim."0.7.0" = {};
-  deps.syn."0.11.11" = {
-    quote = "0.3.15";
-    synom = "0.11.3";
-    unicode_xid = "0.0.4";
-  };
-  deps.synom."0.11.3" = {
-    unicode_xid = "0.0.4";
-  };
-  deps.synstructure."0.6.1" = {
-    quote = "0.3.15";
-    syn = "0.11.11";
-  };
-  deps.systemfd."0.3.0" = {
-    clap = "2.31.2";
-    console = "0.6.1";
-    failure = "0.1.1";
-    failure_derive = "0.1.1";
-    lazy_static = "1.0.0";
-    libc = "0.2.40";
-    regex = "1.0.0";
-    nix = "0.10.0";
-    socket2 = "0.3.5";
-    uuid = "0.6.3";
-    winapi = "0.3.4";
-  };
-  deps.termion."1.5.1" = {
-    libc = "0.2.40";
-    redox_syscall = "0.1.37";
-    redox_termios = "0.1.1";
-  };
-  deps.termios."0.2.2" = {
-    libc = "0.2.40";
-  };
-  deps.textwrap."0.9.0" = {
-    unicode_width = "0.1.4";
-  };
-  deps.thread_local."0.3.5" = {
-    lazy_static = "1.0.0";
-    unreachable = "1.0.0";
-  };
-  deps.ucd_util."0.1.1" = {};
-  deps.unicode_width."0.1.4" = {};
-  deps.unicode_xid."0.0.4" = {};
-  deps.unreachable."1.0.0" = {
-    void = "1.0.2";
-  };
-  deps.utf8_ranges."1.0.0" = {};
-  deps.uuid."0.6.3" = {
-    cfg_if = "0.1.3";
-    rand = "0.4.2";
-  };
-  deps.vec_map."0.8.1" = {};
-  deps.void."1.0.2" = {};
-  deps.winapi."0.2.8" = {};
-  deps.winapi."0.3.4" = {
-    winapi_i686_pc_windows_gnu = "0.4.0";
-    winapi_x86_64_pc_windows_gnu = "0.4.0";
-  };
-  deps.winapi_build."0.1.1" = {};
-  deps.winapi_i686_pc_windows_gnu."0.4.0" = {};
-  deps.winapi_x86_64_pc_windows_gnu."0.4.0" = {};
-}
diff --git a/pkgs/development/tools/systemfd/crates-io.list b/pkgs/development/tools/systemfd/crates-io.list
deleted file mode 100644
index 0b8371f68a1e2..0000000000000
--- a/pkgs/development/tools/systemfd/crates-io.list
+++ /dev/null
@@ -1,62 +0,0 @@
-aho-corasick-0.6.4
-ansi_term-0.11.0
-atty-0.2.10
-backtrace-0.3.7
-backtrace-sys-0.1.16
-bitflags-1.0.3
-byteorder-1.2.3
-bytes-0.4.7
-cc-1.0.15
-cfg-if-0.1.3
-clap-2.31.2
-clicolors-control-0.2.0
-console-0.6.1
-failure-0.1.1
-failure_derive-0.1.1
-fuchsia-zircon-0.3.3
-fuchsia-zircon-sys-0.3.3
-gcc-0.3.54
-iovec-0.1.2
-kernel32-sys-0.2.2
-lazy_static-0.2.11
-lazy_static-1.0.0
-libc-0.2.40
-memchr-2.0.1
-nix-0.10.0
-owning_ref-0.3.3
-parking_lot-0.5.5
-parking_lot_core-0.2.14
-quote-0.3.15
-rand-0.4.2
-redox_syscall-0.1.37
-redox_termios-0.1.1
-regex-0.2.11
-regex-1.0.0
-regex-syntax-0.5.6
-regex-syntax-0.6.0
-rustc-demangle-0.1.8
-smallvec-0.6.1
-socket2-0.3.5
-stable_deref_trait-1.0.0
-strsim-0.7.0
-syn-0.11.11
-synom-0.11.3
-synstructure-0.6.1
-systemfd-0.3.0
-termion-1.5.1
-termios-0.2.2
-textwrap-0.9.0
-thread_local-0.3.5
-ucd-util-0.1.1
-unicode-width-0.1.4
-unicode-xid-0.0.4
-unreachable-1.0.0
-utf8-ranges-1.0.0
-uuid-0.6.3
-vec_map-0.8.1
-void-1.0.2
-winapi-0.2.8
-winapi-0.3.4
-winapi-build-0.1.1
-winapi-i686-pc-windows-gnu-0.4.0
-winapi-x86_64-pc-windows-gnu-0.4.0
diff --git a/pkgs/development/tools/systemfd/crates-io.nix b/pkgs/development/tools/systemfd/crates-io.nix
deleted file mode 100644
index 7e7b737b8c878..0000000000000
--- a/pkgs/development/tools/systemfd/crates-io.nix
+++ /dev/null
@@ -1,1890 +0,0 @@
-{ lib, buildRustCrate, buildRustCrateHelpers }:
-with buildRustCrateHelpers;
-let inherit (lib.lists) fold;
-    inherit (lib.attrsets) recursiveUpdate;
-in
-rec {
-
-# aho-corasick-0.6.4
-
-  crates.aho_corasick."0.6.4" = deps: { features?(features_.aho_corasick."0.6.4" deps {}) }: buildRustCrate {
-    crateName = "aho-corasick";
-    version = "0.6.4";
-    description = "Fast multiple substring searching with finite state machines.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "189v919mp6rzzgjp1khpn4zlq8ls81gh43x1lmc8kbkagdlpq888";
-    libName = "aho_corasick";
-    crateBin =
-      [{  name = "aho-corasick-dot"; }];
-    dependencies = mapFeatures features ([
-      (crates."memchr"."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
-    ]);
-  };
-  features_.aho_corasick."0.6.4" = deps: f: updateFeatures f (rec {
-    aho_corasick."0.6.4".default = (f.aho_corasick."0.6.4".default or true);
-    memchr."${deps.aho_corasick."0.6.4".memchr}".default = true;
-  }) [
-    (features_.memchr."${deps."aho_corasick"."0.6.4"."memchr"}" deps)
-  ];
-
-
-# end
-# ansi_term-0.11.0
-
-  crates.ansi_term."0.11.0" = deps: { features?(features_.ansi_term."0.11.0" deps {}) }: buildRustCrate {
-    crateName = "ansi_term";
-    version = "0.11.0";
-    description = "Library for ANSI terminal colours and styles (bold, underline)";
-    authors = [ "ogham@bsago.me" "Ryan Scheel (Havvy) <ryan.havvy@gmail.com>" "Josh Triplett <josh@joshtriplett.org>" ];
-    sha256 = "08fk0p2xvkqpmz3zlrwnf6l8sj2vngw464rvzspzp31sbgxbwm4v";
-    dependencies = (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."ansi_term"."0.11.0"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.ansi_term."0.11.0" = deps: f: updateFeatures f (rec {
-    ansi_term."0.11.0".default = (f.ansi_term."0.11.0".default or true);
-    winapi = fold recursiveUpdate {} [
-      { "${deps.ansi_term."0.11.0".winapi}"."consoleapi" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}"."errhandlingapi" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}"."processenv" = true; }
-      { "${deps.ansi_term."0.11.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.winapi."${deps."ansi_term"."0.11.0"."winapi"}" deps)
-  ];
-
-
-# end
-# atty-0.2.10
-
-  crates.atty."0.2.10" = deps: { features?(features_.atty."0.2.10" deps {}) }: buildRustCrate {
-    crateName = "atty";
-    version = "0.2.10";
-    description = "A simple interface for querying atty";
-    authors = [ "softprops <d.tangren@gmail.com>" ];
-    sha256 = "1h26lssj8rwaz0xhwwm5a645r49yly211amfmd243m3m0jl49i2c";
-    dependencies = (if kernel == "redox" then mapFeatures features ([
-      (crates."termion"."${deps."atty"."0.2.10"."termion"}" deps)
-    ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."atty"."0.2.10"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."atty"."0.2.10"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.atty."0.2.10" = deps: f: updateFeatures f (rec {
-    atty."0.2.10".default = (f.atty."0.2.10".default or true);
-    libc."${deps.atty."0.2.10".libc}".default = (f.libc."${deps.atty."0.2.10".libc}".default or false);
-    termion."${deps.atty."0.2.10".termion}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.atty."0.2.10".winapi}"."consoleapi" = true; }
-      { "${deps.atty."0.2.10".winapi}"."minwinbase" = true; }
-      { "${deps.atty."0.2.10".winapi}"."minwindef" = true; }
-      { "${deps.atty."0.2.10".winapi}"."processenv" = true; }
-      { "${deps.atty."0.2.10".winapi}"."winbase" = true; }
-      { "${deps.atty."0.2.10".winapi}".default = true; }
-    ];
-  }) [
-    (features_.termion."${deps."atty"."0.2.10"."termion"}" deps)
-    (features_.libc."${deps."atty"."0.2.10"."libc"}" deps)
-    (features_.winapi."${deps."atty"."0.2.10"."winapi"}" deps)
-  ];
-
-
-# end
-# backtrace-0.3.7
-
-  crates.backtrace."0.3.7" = deps: { features?(features_.backtrace."0.3.7" deps {}) }: buildRustCrate {
-    crateName = "backtrace";
-    version = "0.3.7";
-    description = "A library to acquire a stack trace (backtrace) at runtime in a Rust program.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "The Rust Project Developers" ];
-    sha256 = "00zzcgacv516dlhxkrdw4c8vsx3bwkkdrrzi5pnxrhpd87ambjwn";
-    dependencies = mapFeatures features ([
-      (crates."cfg_if"."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
-      (crates."rustc_demangle"."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") && !(kernel == "fuchsia") && !(kernel == "emscripten") && !(kernel == "darwin") && !(kernel == "ios") then mapFeatures features ([
-    ]
-      ++ (if features.backtrace."0.3.7".backtrace-sys or false then [ (crates.backtrace_sys."${deps."backtrace"."0.3.7".backtrace_sys}" deps) ] else [])) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."backtrace"."0.3.7"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-    ]
-      ++ (if features.backtrace."0.3.7".winapi or false then [ (crates.winapi."${deps."backtrace"."0.3.7".winapi}" deps) ] else [])) else []);
-    features = mkFeatures (features."backtrace"."0.3.7" or {});
-  };
-  features_.backtrace."0.3.7" = deps: f: updateFeatures f (rec {
-    backtrace = fold recursiveUpdate {} [
-      { "0.3.7"."addr2line" =
-        (f.backtrace."0.3.7"."addr2line" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."backtrace-sys" =
-        (f.backtrace."0.3.7"."backtrace-sys" or false) ||
-        (f.backtrace."0.3.7".libbacktrace or false) ||
-        (backtrace."0.3.7"."libbacktrace" or false); }
-      { "0.3.7"."coresymbolication" =
-        (f.backtrace."0.3.7"."coresymbolication" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."dbghelp" =
-        (f.backtrace."0.3.7"."dbghelp" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."dladdr" =
-        (f.backtrace."0.3.7"."dladdr" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."findshlibs" =
-        (f.backtrace."0.3.7"."findshlibs" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."gimli" =
-        (f.backtrace."0.3.7"."gimli" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."libbacktrace" =
-        (f.backtrace."0.3.7"."libbacktrace" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."libunwind" =
-        (f.backtrace."0.3.7"."libunwind" or false) ||
-        (f.backtrace."0.3.7".default or false) ||
-        (backtrace."0.3.7"."default" or false); }
-      { "0.3.7"."memmap" =
-        (f.backtrace."0.3.7"."memmap" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."object" =
-        (f.backtrace."0.3.7"."object" or false) ||
-        (f.backtrace."0.3.7".gimli-symbolize or false) ||
-        (backtrace."0.3.7"."gimli-symbolize" or false); }
-      { "0.3.7"."rustc-serialize" =
-        (f.backtrace."0.3.7"."rustc-serialize" or false) ||
-        (f.backtrace."0.3.7".serialize-rustc or false) ||
-        (backtrace."0.3.7"."serialize-rustc" or false); }
-      { "0.3.7"."serde" =
-        (f.backtrace."0.3.7"."serde" or false) ||
-        (f.backtrace."0.3.7".serialize-serde or false) ||
-        (backtrace."0.3.7"."serialize-serde" or false); }
-      { "0.3.7"."serde_derive" =
-        (f.backtrace."0.3.7"."serde_derive" or false) ||
-        (f.backtrace."0.3.7".serialize-serde or false) ||
-        (backtrace."0.3.7"."serialize-serde" or false); }
-      { "0.3.7"."winapi" =
-        (f.backtrace."0.3.7"."winapi" or false) ||
-        (f.backtrace."0.3.7".dbghelp or false) ||
-        (backtrace."0.3.7"."dbghelp" or false); }
-      { "0.3.7".default = (f.backtrace."0.3.7".default or true); }
-    ];
-    backtrace_sys."${deps.backtrace."0.3.7".backtrace_sys}".default = true;
-    cfg_if."${deps.backtrace."0.3.7".cfg_if}".default = true;
-    libc."${deps.backtrace."0.3.7".libc}".default = true;
-    rustc_demangle."${deps.backtrace."0.3.7".rustc_demangle}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.backtrace."0.3.7".winapi}"."dbghelp" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."minwindef" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."processthreadsapi" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."std" = true; }
-      { "${deps.backtrace."0.3.7".winapi}"."winnt" = true; }
-      { "${deps.backtrace."0.3.7".winapi}".default = true; }
-    ];
-  }) [
-    (features_.cfg_if."${deps."backtrace"."0.3.7"."cfg_if"}" deps)
-    (features_.rustc_demangle."${deps."backtrace"."0.3.7"."rustc_demangle"}" deps)
-    (features_.backtrace_sys."${deps."backtrace"."0.3.7"."backtrace_sys"}" deps)
-    (features_.libc."${deps."backtrace"."0.3.7"."libc"}" deps)
-    (features_.winapi."${deps."backtrace"."0.3.7"."winapi"}" deps)
-  ];
-
-
-# end
-# backtrace-sys-0.1.16
-
-  crates.backtrace_sys."0.1.16" = deps: { features?(features_.backtrace_sys."0.1.16" deps {}) }: buildRustCrate {
-    crateName = "backtrace-sys";
-    version = "0.1.16";
-    description = "Bindings to the libbacktrace gcc library\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1cn2c8q3dn06crmnk0p62czkngam4l8nf57wy33nz1y5g25pszwy";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."cc"."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
-    ]);
-  };
-  features_.backtrace_sys."0.1.16" = deps: f: updateFeatures f (rec {
-    backtrace_sys."0.1.16".default = (f.backtrace_sys."0.1.16".default or true);
-    cc."${deps.backtrace_sys."0.1.16".cc}".default = true;
-    libc."${deps.backtrace_sys."0.1.16".libc}".default = true;
-  }) [
-    (features_.libc."${deps."backtrace_sys"."0.1.16"."libc"}" deps)
-    (features_.cc."${deps."backtrace_sys"."0.1.16"."cc"}" deps)
-  ];
-
-
-# end
-# bitflags-1.0.3
-
-  crates.bitflags."1.0.3" = deps: { features?(features_.bitflags."1.0.3" deps {}) }: buildRustCrate {
-    crateName = "bitflags";
-    version = "1.0.3";
-    description = "A macro to generate structures which behave like bitflags.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "162p4w4h1ad76awq6b5yivmls3d50m9cl27d8g588lsps6g8s5rw";
-    features = mkFeatures (features."bitflags"."1.0.3" or {});
-  };
-  features_.bitflags."1.0.3" = deps: f: updateFeatures f (rec {
-    bitflags."1.0.3".default = (f.bitflags."1.0.3".default or true);
-  }) [];
-
-
-# end
-# byteorder-1.2.3
-
-  crates.byteorder."1.2.3" = deps: { features?(features_.byteorder."1.2.3" deps {}) }: buildRustCrate {
-    crateName = "byteorder";
-    version = "1.2.3";
-    description = "Library for reading/writing numbers in big-endian and little-endian.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "1xghv5f5rydzsam8lnfqhfk090i8a1knb77ikbs0ik44bvrw2ij3";
-    features = mkFeatures (features."byteorder"."1.2.3" or {});
-  };
-  features_.byteorder."1.2.3" = deps: f: updateFeatures f (rec {
-    byteorder = fold recursiveUpdate {} [
-      { "1.2.3"."std" =
-        (f.byteorder."1.2.3"."std" or false) ||
-        (f.byteorder."1.2.3".default or false) ||
-        (byteorder."1.2.3"."default" or false); }
-      { "1.2.3".default = (f.byteorder."1.2.3".default or true); }
-    ];
-  }) [];
-
-
-# end
-# bytes-0.4.7
-
-  crates.bytes."0.4.7" = deps: { features?(features_.bytes."0.4.7" deps {}) }: buildRustCrate {
-    crateName = "bytes";
-    version = "0.4.7";
-    description = "Types and traits for working with bytes";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "1icr74r099d0c0a2q1pz51182z7911g92h2j60al351kz78dzv3f";
-    dependencies = mapFeatures features ([
-      (crates."byteorder"."${deps."bytes"."0.4.7"."byteorder"}" deps)
-      (crates."iovec"."${deps."bytes"."0.4.7"."iovec"}" deps)
-    ]);
-  };
-  features_.bytes."0.4.7" = deps: f: updateFeatures f (rec {
-    byteorder."${deps.bytes."0.4.7".byteorder}".default = true;
-    bytes."0.4.7".default = (f.bytes."0.4.7".default or true);
-    iovec."${deps.bytes."0.4.7".iovec}".default = true;
-  }) [
-    (features_.byteorder."${deps."bytes"."0.4.7"."byteorder"}" deps)
-    (features_.iovec."${deps."bytes"."0.4.7"."iovec"}" deps)
-  ];
-
-
-# end
-# cc-1.0.15
-
-  crates.cc."1.0.15" = deps: { features?(features_.cc."1.0.15" deps {}) }: buildRustCrate {
-    crateName = "cc";
-    version = "1.0.15";
-    description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "1zmcv4zf888byhay2qakqlc9b8snhy5ccfs35zb6flywmlj8f2c0";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."cc"."1.0.15" or {});
-  };
-  features_.cc."1.0.15" = deps: f: updateFeatures f (rec {
-    cc = fold recursiveUpdate {} [
-      { "1.0.15"."rayon" =
-        (f.cc."1.0.15"."rayon" or false) ||
-        (f.cc."1.0.15".parallel or false) ||
-        (cc."1.0.15"."parallel" or false); }
-      { "1.0.15".default = (f.cc."1.0.15".default or true); }
-    ];
-  }) [];
-
-
-# end
-# cfg-if-0.1.3
-
-  crates.cfg_if."0.1.3" = deps: { features?(features_.cfg_if."0.1.3" deps {}) }: buildRustCrate {
-    crateName = "cfg-if";
-    version = "0.1.3";
-    description = "A macro to ergonomically define an item depending on a large number of #[cfg]\nparameters. Structured like an if-else chain, the first matching branch is the\nitem that gets emitted.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0hphfz5qg40gr5p18gmgy2rzkqj019lii3n0dy3s0a6lnl9106k6";
-  };
-  features_.cfg_if."0.1.3" = deps: f: updateFeatures f (rec {
-    cfg_if."0.1.3".default = (f.cfg_if."0.1.3".default or true);
-  }) [];
-
-
-# end
-# clap-2.31.2
-
-  crates.clap."2.31.2" = deps: { features?(features_.clap."2.31.2" deps {}) }: buildRustCrate {
-    crateName = "clap";
-    version = "2.31.2";
-    description = "A simple to use, efficient, and full featured  Command Line Argument Parser\n";
-    authors = [ "Kevin K. <kbknapp@gmail.com>" ];
-    sha256 = "0r24ziw85a8y1sf2l21y4mvv5qan3rjafcshpyfsjfadqfxsij72";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."clap"."2.31.2"."bitflags"}" deps)
-      (crates."textwrap"."${deps."clap"."2.31.2"."textwrap"}" deps)
-      (crates."unicode_width"."${deps."clap"."2.31.2"."unicode_width"}" deps)
-    ]
-      ++ (if features.clap."2.31.2".atty or false then [ (crates.atty."${deps."clap"."2.31.2".atty}" deps) ] else [])
-      ++ (if features.clap."2.31.2".strsim or false then [ (crates.strsim."${deps."clap"."2.31.2".strsim}" deps) ] else [])
-      ++ (if features.clap."2.31.2".vec_map or false then [ (crates.vec_map."${deps."clap"."2.31.2".vec_map}" deps) ] else []))
-      ++ (if !(kernel == "windows") then mapFeatures features ([
-    ]
-      ++ (if features.clap."2.31.2".ansi_term or false then [ (crates.ansi_term."${deps."clap"."2.31.2".ansi_term}" deps) ] else [])) else []);
-    features = mkFeatures (features."clap"."2.31.2" or {});
-  };
-  features_.clap."2.31.2" = deps: f: updateFeatures f (rec {
-    ansi_term."${deps.clap."2.31.2".ansi_term}".default = true;
-    atty."${deps.clap."2.31.2".atty}".default = true;
-    bitflags."${deps.clap."2.31.2".bitflags}".default = true;
-    clap = fold recursiveUpdate {} [
-      { "2.31.2"."ansi_term" =
-        (f.clap."2.31.2"."ansi_term" or false) ||
-        (f.clap."2.31.2".color or false) ||
-        (clap."2.31.2"."color" or false); }
-      { "2.31.2"."atty" =
-        (f.clap."2.31.2"."atty" or false) ||
-        (f.clap."2.31.2".color or false) ||
-        (clap."2.31.2"."color" or false); }
-      { "2.31.2"."clippy" =
-        (f.clap."2.31.2"."clippy" or false) ||
-        (f.clap."2.31.2".lints or false) ||
-        (clap."2.31.2"."lints" or false); }
-      { "2.31.2"."color" =
-        (f.clap."2.31.2"."color" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."strsim" =
-        (f.clap."2.31.2"."strsim" or false) ||
-        (f.clap."2.31.2".suggestions or false) ||
-        (clap."2.31.2"."suggestions" or false); }
-      { "2.31.2"."suggestions" =
-        (f.clap."2.31.2"."suggestions" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."term_size" =
-        (f.clap."2.31.2"."term_size" or false) ||
-        (f.clap."2.31.2".wrap_help or false) ||
-        (clap."2.31.2"."wrap_help" or false); }
-      { "2.31.2"."vec_map" =
-        (f.clap."2.31.2"."vec_map" or false) ||
-        (f.clap."2.31.2".default or false) ||
-        (clap."2.31.2"."default" or false); }
-      { "2.31.2"."yaml" =
-        (f.clap."2.31.2"."yaml" or false) ||
-        (f.clap."2.31.2".doc or false) ||
-        (clap."2.31.2"."doc" or false); }
-      { "2.31.2"."yaml-rust" =
-        (f.clap."2.31.2"."yaml-rust" or false) ||
-        (f.clap."2.31.2".yaml or false) ||
-        (clap."2.31.2"."yaml" or false); }
-      { "2.31.2".default = (f.clap."2.31.2".default or true); }
-    ];
-    strsim."${deps.clap."2.31.2".strsim}".default = true;
-    textwrap = fold recursiveUpdate {} [
-      { "${deps.clap."2.31.2".textwrap}"."term_size" =
-        (f.textwrap."${deps.clap."2.31.2".textwrap}"."term_size" or false) ||
-        (clap."2.31.2"."wrap_help" or false) ||
-        (f."clap"."2.31.2"."wrap_help" or false); }
-      { "${deps.clap."2.31.2".textwrap}".default = true; }
-    ];
-    unicode_width."${deps.clap."2.31.2".unicode_width}".default = true;
-    vec_map."${deps.clap."2.31.2".vec_map}".default = true;
-  }) [
-    (features_.atty."${deps."clap"."2.31.2"."atty"}" deps)
-    (features_.bitflags."${deps."clap"."2.31.2"."bitflags"}" deps)
-    (features_.strsim."${deps."clap"."2.31.2"."strsim"}" deps)
-    (features_.textwrap."${deps."clap"."2.31.2"."textwrap"}" deps)
-    (features_.unicode_width."${deps."clap"."2.31.2"."unicode_width"}" deps)
-    (features_.vec_map."${deps."clap"."2.31.2"."vec_map"}" deps)
-    (features_.ansi_term."${deps."clap"."2.31.2"."ansi_term"}" deps)
-  ];
-
-
-# end
-# clicolors-control-0.2.0
-
-  crates.clicolors_control."0.2.0" = deps: { features?(features_.clicolors_control."0.2.0" deps {}) }: buildRustCrate {
-    crateName = "clicolors-control";
-    version = "0.2.0";
-    description = "A common utility library to control CLI colorization";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0p1fbs7k70h58ycahmin7b87c0xn6lc94xmh9jw4gxi40mnrvdkp";
-    dependencies = mapFeatures features ([
-      (crates."lazy_static"."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."clicolors_control"."0.2.0"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."kernel32_sys"."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
-      (crates."winapi"."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."clicolors_control"."0.2.0" or {});
-  };
-  features_.clicolors_control."0.2.0" = deps: f: updateFeatures f (rec {
-    clicolors_control = fold recursiveUpdate {} [
-      { "0.2.0"."terminal_autoconfig" =
-        (f.clicolors_control."0.2.0"."terminal_autoconfig" or false) ||
-        (f.clicolors_control."0.2.0".default or false) ||
-        (clicolors_control."0.2.0"."default" or false); }
-      { "0.2.0".default = (f.clicolors_control."0.2.0".default or true); }
-    ];
-    kernel32_sys."${deps.clicolors_control."0.2.0".kernel32_sys}".default = true;
-    lazy_static."${deps.clicolors_control."0.2.0".lazy_static}".default = true;
-    libc."${deps.clicolors_control."0.2.0".libc}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.clicolors_control."0.2.0".winapi}"."consoleapi" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."handleapi" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."processenv" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}"."winbase" = true; }
-      { "${deps.clicolors_control."0.2.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.lazy_static."${deps."clicolors_control"."0.2.0"."lazy_static"}" deps)
-    (features_.libc."${deps."clicolors_control"."0.2.0"."libc"}" deps)
-    (features_.kernel32_sys."${deps."clicolors_control"."0.2.0"."kernel32_sys"}" deps)
-    (features_.winapi."${deps."clicolors_control"."0.2.0"."winapi"}" deps)
-  ];
-
-
-# end
-# console-0.6.1
-
-  crates.console."0.6.1" = deps: { features?(features_.console."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "console";
-    version = "0.6.1";
-    description = "A terminal and console abstraction for Rust";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0h46m3nlx7m2pmc1ia2nlbl8d1vp46kqh2c82hx9ckjag68g4zdl";
-    dependencies = mapFeatures features ([
-      (crates."clicolors_control"."${deps."console"."0.6.1"."clicolors_control"}" deps)
-      (crates."lazy_static"."${deps."console"."0.6.1"."lazy_static"}" deps)
-      (crates."libc"."${deps."console"."0.6.1"."libc"}" deps)
-      (crates."parking_lot"."${deps."console"."0.6.1"."parking_lot"}" deps)
-      (crates."regex"."${deps."console"."0.6.1"."regex"}" deps)
-      (crates."unicode_width"."${deps."console"."0.6.1"."unicode_width"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."termios"."${deps."console"."0.6.1"."termios"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."console"."0.6.1"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.console."0.6.1" = deps: f: updateFeatures f (rec {
-    clicolors_control."${deps.console."0.6.1".clicolors_control}".default = true;
-    console."0.6.1".default = (f.console."0.6.1".default or true);
-    lazy_static."${deps.console."0.6.1".lazy_static}".default = true;
-    libc."${deps.console."0.6.1".libc}".default = true;
-    parking_lot."${deps.console."0.6.1".parking_lot}".default = true;
-    regex."${deps.console."0.6.1".regex}".default = true;
-    termios."${deps.console."0.6.1".termios}".default = true;
-    unicode_width."${deps.console."0.6.1".unicode_width}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.console."0.6.1".winapi}"."consoleapi" = true; }
-      { "${deps.console."0.6.1".winapi}"."processenv" = true; }
-      { "${deps.console."0.6.1".winapi}"."winbase" = true; }
-      { "${deps.console."0.6.1".winapi}"."wincon" = true; }
-      { "${deps.console."0.6.1".winapi}"."winuser" = true; }
-      { "${deps.console."0.6.1".winapi}".default = true; }
-    ];
-  }) [
-    (features_.clicolors_control."${deps."console"."0.6.1"."clicolors_control"}" deps)
-    (features_.lazy_static."${deps."console"."0.6.1"."lazy_static"}" deps)
-    (features_.libc."${deps."console"."0.6.1"."libc"}" deps)
-    (features_.parking_lot."${deps."console"."0.6.1"."parking_lot"}" deps)
-    (features_.regex."${deps."console"."0.6.1"."regex"}" deps)
-    (features_.unicode_width."${deps."console"."0.6.1"."unicode_width"}" deps)
-    (features_.termios."${deps."console"."0.6.1"."termios"}" deps)
-    (features_.winapi."${deps."console"."0.6.1"."winapi"}" deps)
-  ];
-
-
-# end
-# failure-0.1.1
-
-  crates.failure."0.1.1" = deps: { features?(features_.failure."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "failure";
-    version = "0.1.1";
-    description = "Experimental error handling abstraction.";
-    authors = [ "Without Boats <boats@mozilla.com>" ];
-    sha256 = "0gf9cmkm9kc163sszgjksqp5pcgj689lnf2104nn4h4is18nhigk";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.failure."0.1.1".backtrace or false then [ (crates.backtrace."${deps."failure"."0.1.1".backtrace}" deps) ] else [])
-      ++ (if features.failure."0.1.1".failure_derive or false then [ (crates.failure_derive."${deps."failure"."0.1.1".failure_derive}" deps) ] else []));
-    features = mkFeatures (features."failure"."0.1.1" or {});
-  };
-  features_.failure."0.1.1" = deps: f: updateFeatures f (rec {
-    backtrace."${deps.failure."0.1.1".backtrace}".default = true;
-    failure = fold recursiveUpdate {} [
-      { "0.1.1"."backtrace" =
-        (f.failure."0.1.1"."backtrace" or false) ||
-        (f.failure."0.1.1".std or false) ||
-        (failure."0.1.1"."std" or false); }
-      { "0.1.1"."derive" =
-        (f.failure."0.1.1"."derive" or false) ||
-        (f.failure."0.1.1".default or false) ||
-        (failure."0.1.1"."default" or false); }
-      { "0.1.1"."failure_derive" =
-        (f.failure."0.1.1"."failure_derive" or false) ||
-        (f.failure."0.1.1".derive or false) ||
-        (failure."0.1.1"."derive" or false); }
-      { "0.1.1"."std" =
-        (f.failure."0.1.1"."std" or false) ||
-        (f.failure."0.1.1".default or false) ||
-        (failure."0.1.1"."default" or false); }
-      { "0.1.1".default = (f.failure."0.1.1".default or true); }
-    ];
-    failure_derive."${deps.failure."0.1.1".failure_derive}".default = true;
-  }) [
-    (features_.backtrace."${deps."failure"."0.1.1"."backtrace"}" deps)
-    (features_.failure_derive."${deps."failure"."0.1.1"."failure_derive"}" deps)
-  ];
-
-
-# end
-# failure_derive-0.1.1
-
-  crates.failure_derive."0.1.1" = deps: { features?(features_.failure_derive."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "failure_derive";
-    version = "0.1.1";
-    description = "derives for the failure crate";
-    authors = [ "Without Boats <woboats@gmail.com>" ];
-    sha256 = "1w895q4pbyx3rwnhgjwfcayk9ghbi166wc1c3553qh8zkbz52k8i";
-    procMacro = true;
-    dependencies = mapFeatures features ([
-      (crates."quote"."${deps."failure_derive"."0.1.1"."quote"}" deps)
-      (crates."syn"."${deps."failure_derive"."0.1.1"."syn"}" deps)
-      (crates."synstructure"."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
-    ]);
-    features = mkFeatures (features."failure_derive"."0.1.1" or {});
-  };
-  features_.failure_derive."0.1.1" = deps: f: updateFeatures f (rec {
-    failure_derive = fold recursiveUpdate {} [
-      { "0.1.1"."std" =
-        (f.failure_derive."0.1.1"."std" or false) ||
-        (f.failure_derive."0.1.1".default or false) ||
-        (failure_derive."0.1.1"."default" or false); }
-      { "0.1.1".default = (f.failure_derive."0.1.1".default or true); }
-    ];
-    quote."${deps.failure_derive."0.1.1".quote}".default = true;
-    syn."${deps.failure_derive."0.1.1".syn}".default = true;
-    synstructure."${deps.failure_derive."0.1.1".synstructure}".default = true;
-  }) [
-    (features_.quote."${deps."failure_derive"."0.1.1"."quote"}" deps)
-    (features_.syn."${deps."failure_derive"."0.1.1"."syn"}" deps)
-    (features_.synstructure."${deps."failure_derive"."0.1.1"."synstructure"}" deps)
-  ];
-
-
-# end
-# fuchsia-zircon-0.3.3
-
-  crates.fuchsia_zircon."0.3.3" = deps: { features?(features_.fuchsia_zircon."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon";
-    version = "0.3.3";
-    description = "Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "0jrf4shb1699r4la8z358vri8318w4mdi6qzfqy30p2ymjlca4gk";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-      (crates."fuchsia_zircon_sys"."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-    ]);
-  };
-  features_.fuchsia_zircon."0.3.3" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.fuchsia_zircon."0.3.3".bitflags}".default = true;
-    fuchsia_zircon."0.3.3".default = (f.fuchsia_zircon."0.3.3".default or true);
-    fuchsia_zircon_sys."${deps.fuchsia_zircon."0.3.3".fuchsia_zircon_sys}".default = true;
-  }) [
-    (features_.bitflags."${deps."fuchsia_zircon"."0.3.3"."bitflags"}" deps)
-    (features_.fuchsia_zircon_sys."${deps."fuchsia_zircon"."0.3.3"."fuchsia_zircon_sys"}" deps)
-  ];
-
-
-# end
-# fuchsia-zircon-sys-0.3.3
-
-  crates.fuchsia_zircon_sys."0.3.3" = deps: { features?(features_.fuchsia_zircon_sys."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "fuchsia-zircon-sys";
-    version = "0.3.3";
-    description = "Low-level Rust bindings for the Zircon kernel";
-    authors = [ "Raph Levien <raph@google.com>" ];
-    sha256 = "08jp1zxrm9jbrr6l26bjal4dbm8bxfy57ickdgibsqxr1n9j3hf5";
-  };
-  features_.fuchsia_zircon_sys."0.3.3" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon_sys."0.3.3".default = (f.fuchsia_zircon_sys."0.3.3".default or true);
-  }) [];
-
-
-# end
-# gcc-0.3.54
-
-  crates.gcc."0.3.54" = deps: { features?(features_.gcc."0.3.54" deps {}) }: buildRustCrate {
-    crateName = "gcc";
-    version = "0.3.54";
-    description = "A build-time dependency for Cargo build scripts to assist in invoking the native\nC compiler to compile native C code into a static archive to be linked into Rust\ncode.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "07a5i47r8achc6gxsba3ga17h9gnh4b9a2cak8vjg4hx62aajkr4";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."gcc"."0.3.54" or {});
-  };
-  features_.gcc."0.3.54" = deps: f: updateFeatures f (rec {
-    gcc = fold recursiveUpdate {} [
-      { "0.3.54"."rayon" =
-        (f.gcc."0.3.54"."rayon" or false) ||
-        (f.gcc."0.3.54".parallel or false) ||
-        (gcc."0.3.54"."parallel" or false); }
-      { "0.3.54".default = (f.gcc."0.3.54".default or true); }
-    ];
-  }) [];
-
-
-# end
-# iovec-0.1.2
-
-  crates.iovec."0.1.2" = deps: { features?(features_.iovec."0.1.2" deps {}) }: buildRustCrate {
-    crateName = "iovec";
-    version = "0.1.2";
-    description = "Portable buffer type for scatter/gather I/O operations\n";
-    authors = [ "Carl Lerche <me@carllerche.com>" ];
-    sha256 = "0vjymmb7wj4v4kza5jjn48fcdb85j3k37y7msjl3ifz0p9yiyp2r";
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."iovec"."0.1.2"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."iovec"."0.1.2"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.iovec."0.1.2" = deps: f: updateFeatures f (rec {
-    iovec."0.1.2".default = (f.iovec."0.1.2".default or true);
-    libc."${deps.iovec."0.1.2".libc}".default = true;
-    winapi."${deps.iovec."0.1.2".winapi}".default = true;
-  }) [
-    (features_.libc."${deps."iovec"."0.1.2"."libc"}" deps)
-    (features_.winapi."${deps."iovec"."0.1.2"."winapi"}" deps)
-  ];
-
-
-# end
-# kernel32-sys-0.2.2
-
-  crates.kernel32_sys."0.2.2" = deps: { features?(features_.kernel32_sys."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "kernel32-sys";
-    version = "0.2.2";
-    description = "Contains function definitions for the Windows API library kernel32. See winapi for types and constants.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lrw1hbinyvr6cp28g60z97w32w8vsk6pahk64pmrv2fmby8srfj";
-    libName = "kernel32";
-    build = "build.rs";
-    dependencies = mapFeatures features ([
-      (crates."winapi"."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    ]);
-
-    buildDependencies = mapFeatures features ([
-      (crates."winapi_build"."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-    ]);
-  };
-  features_.kernel32_sys."0.2.2" = deps: f: updateFeatures f (rec {
-    kernel32_sys."0.2.2".default = (f.kernel32_sys."0.2.2".default or true);
-    winapi."${deps.kernel32_sys."0.2.2".winapi}".default = true;
-    winapi_build."${deps.kernel32_sys."0.2.2".winapi_build}".default = true;
-  }) [
-    (features_.winapi."${deps."kernel32_sys"."0.2.2"."winapi"}" deps)
-    (features_.winapi_build."${deps."kernel32_sys"."0.2.2"."winapi_build"}" deps)
-  ];
-
-
-# end
-# lazy_static-0.2.11
-
-  crates.lazy_static."0.2.11" = deps: { features?(features_.lazy_static."0.2.11" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "0.2.11";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "1x6871cvpy5b96yv4c7jvpq316fp5d4609s9py7qk6cd6x9k34vm";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."0.2.11" or {});
-  };
-  features_.lazy_static."0.2.11" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "0.2.11"."compiletest_rs" =
-        (f.lazy_static."0.2.11"."compiletest_rs" or false) ||
-        (f.lazy_static."0.2.11".compiletest or false) ||
-        (lazy_static."0.2.11"."compiletest" or false); }
-      { "0.2.11"."nightly" =
-        (f.lazy_static."0.2.11"."nightly" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11"."spin" =
-        (f.lazy_static."0.2.11"."spin" or false) ||
-        (f.lazy_static."0.2.11".spin_no_std or false) ||
-        (lazy_static."0.2.11"."spin_no_std" or false); }
-      { "0.2.11".default = (f.lazy_static."0.2.11".default or true); }
-    ];
-  }) [];
-
-
-# end
-# lazy_static-1.0.0
-
-  crates.lazy_static."1.0.0" = deps: { features?(features_.lazy_static."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "lazy_static";
-    version = "1.0.0";
-    description = "A macro for declaring lazily evaluated statics in Rust.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "0wfvqyr2nvx2mbsrscg5y7gfa9skhb8p72ayanl8vl49pw24v4fh";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."lazy_static"."1.0.0" or {});
-  };
-  features_.lazy_static."1.0.0" = deps: f: updateFeatures f (rec {
-    lazy_static = fold recursiveUpdate {} [
-      { "1.0.0"."compiletest_rs" =
-        (f.lazy_static."1.0.0"."compiletest_rs" or false) ||
-        (f.lazy_static."1.0.0".compiletest or false) ||
-        (lazy_static."1.0.0"."compiletest" or false); }
-      { "1.0.0"."nightly" =
-        (f.lazy_static."1.0.0"."nightly" or false) ||
-        (f.lazy_static."1.0.0".spin_no_std or false) ||
-        (lazy_static."1.0.0"."spin_no_std" or false); }
-      { "1.0.0"."spin" =
-        (f.lazy_static."1.0.0"."spin" or false) ||
-        (f.lazy_static."1.0.0".spin_no_std or false) ||
-        (lazy_static."1.0.0"."spin_no_std" or false); }
-      { "1.0.0".default = (f.lazy_static."1.0.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# libc-0.2.40
-
-  crates.libc."0.2.40" = deps: { features?(features_.libc."0.2.40" deps {}) }: buildRustCrate {
-    crateName = "libc";
-    version = "0.2.40";
-    description = "A library for types and bindings to native C functions often found in libc or\nother common platform libraries.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1xfc39237ldzgr8x8wcflgdr8zssi3wif7g2zxc02d94gzkjsw83";
-    features = mkFeatures (features."libc"."0.2.40" or {});
-  };
-  features_.libc."0.2.40" = deps: f: updateFeatures f (rec {
-    libc = fold recursiveUpdate {} [
-      { "0.2.40"."use_std" =
-        (f.libc."0.2.40"."use_std" or false) ||
-        (f.libc."0.2.40".default or false) ||
-        (libc."0.2.40"."default" or false); }
-      { "0.2.40".default = (f.libc."0.2.40".default or true); }
-    ];
-  }) [];
-
-
-# end
-# memchr-2.0.1
-
-  crates.memchr."2.0.1" = deps: { features?(features_.memchr."2.0.1" deps {}) }: buildRustCrate {
-    crateName = "memchr";
-    version = "2.0.1";
-    description = "Safe interface to memchr.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" "bluss" ];
-    sha256 = "0ls2y47rjwapjdax6bp974gdp06ggm1v8d1h69wyydmh1nhgm5gr";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.memchr."2.0.1".libc or false then [ (crates.libc."${deps."memchr"."2.0.1".libc}" deps) ] else []));
-    features = mkFeatures (features."memchr"."2.0.1" or {});
-  };
-  features_.memchr."2.0.1" = deps: f: updateFeatures f (rec {
-    libc = fold recursiveUpdate {} [
-      { "${deps.memchr."2.0.1".libc}"."use_std" =
-        (f.libc."${deps.memchr."2.0.1".libc}"."use_std" or false) ||
-        (memchr."2.0.1"."use_std" or false) ||
-        (f."memchr"."2.0.1"."use_std" or false); }
-      { "${deps.memchr."2.0.1".libc}".default = (f.libc."${deps.memchr."2.0.1".libc}".default or false); }
-    ];
-    memchr = fold recursiveUpdate {} [
-      { "2.0.1"."libc" =
-        (f.memchr."2.0.1"."libc" or false) ||
-        (f.memchr."2.0.1".default or false) ||
-        (memchr."2.0.1"."default" or false) ||
-        (f.memchr."2.0.1".use_std or false) ||
-        (memchr."2.0.1"."use_std" or false); }
-      { "2.0.1"."use_std" =
-        (f.memchr."2.0.1"."use_std" or false) ||
-        (f.memchr."2.0.1".default or false) ||
-        (memchr."2.0.1"."default" or false); }
-      { "2.0.1".default = (f.memchr."2.0.1".default or true); }
-    ];
-  }) [
-    (features_.libc."${deps."memchr"."2.0.1"."libc"}" deps)
-  ];
-
-
-# end
-# nix-0.10.0
-
-  crates.nix."0.10.0" = deps: { features?(features_.nix."0.10.0" deps {}) }: buildRustCrate {
-    crateName = "nix";
-    version = "0.10.0";
-    description = "Rust friendly bindings to *nix APIs";
-    authors = [ "The nix-rust Project Developers" ];
-    sha256 = "0ghrbjlc1l21pmldwaz5b5m72xs0m05y1zq5ljlnymn61vbzxsny";
-    dependencies = mapFeatures features ([
-      (crates."bitflags"."${deps."nix"."0.10.0"."bitflags"}" deps)
-      (crates."bytes"."${deps."nix"."0.10.0"."bytes"}" deps)
-      (crates."cfg_if"."${deps."nix"."0.10.0"."cfg_if"}" deps)
-      (crates."libc"."${deps."nix"."0.10.0"."libc"}" deps)
-      (crates."void"."${deps."nix"."0.10.0"."void"}" deps)
-    ])
-      ++ (if kernel == "dragonfly" then mapFeatures features ([
-]) else []);
-  };
-  features_.nix."0.10.0" = deps: f: updateFeatures f (rec {
-    bitflags."${deps.nix."0.10.0".bitflags}".default = true;
-    bytes."${deps.nix."0.10.0".bytes}".default = (f.bytes."${deps.nix."0.10.0".bytes}".default or false);
-    cfg_if."${deps.nix."0.10.0".cfg_if}".default = true;
-    libc."${deps.nix."0.10.0".libc}".default = true;
-    nix."0.10.0".default = (f.nix."0.10.0".default or true);
-    void."${deps.nix."0.10.0".void}".default = true;
-  }) [
-    (features_.bitflags."${deps."nix"."0.10.0"."bitflags"}" deps)
-    (features_.bytes."${deps."nix"."0.10.0"."bytes"}" deps)
-    (features_.cfg_if."${deps."nix"."0.10.0"."cfg_if"}" deps)
-    (features_.libc."${deps."nix"."0.10.0"."libc"}" deps)
-    (features_.void."${deps."nix"."0.10.0"."void"}" deps)
-  ];
-
-
-# end
-# owning_ref-0.3.3
-
-  crates.owning_ref."0.3.3" = deps: { features?(features_.owning_ref."0.3.3" deps {}) }: buildRustCrate {
-    crateName = "owning_ref";
-    version = "0.3.3";
-    description = "A library for creating references that carry their owner with them.";
-    authors = [ "Marvin Löbel <loebel.marvin@gmail.com>" ];
-    sha256 = "13ivn0ydc0hf957ix0f5si9nnplzzykbr70hni1qz9m19i9kvmrh";
-    dependencies = mapFeatures features ([
-      (crates."stable_deref_trait"."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
-    ]);
-  };
-  features_.owning_ref."0.3.3" = deps: f: updateFeatures f (rec {
-    owning_ref."0.3.3".default = (f.owning_ref."0.3.3".default or true);
-    stable_deref_trait."${deps.owning_ref."0.3.3".stable_deref_trait}".default = true;
-  }) [
-    (features_.stable_deref_trait."${deps."owning_ref"."0.3.3"."stable_deref_trait"}" deps)
-  ];
-
-
-# end
-# parking_lot-0.5.5
-
-  crates.parking_lot."0.5.5" = deps: { features?(features_.parking_lot."0.5.5" deps {}) }: buildRustCrate {
-    crateName = "parking_lot";
-    version = "0.5.5";
-    description = "More compact and efficient implementations of the standard synchronization primitives.";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0balxl593apy0l70z6dzk6c0r9707hgw2c9yav5asjc87dj6fx7l";
-    dependencies = mapFeatures features ([
-      (crates."parking_lot_core"."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
-    ]
-      ++ (if features.parking_lot."0.5.5".owning_ref or false then [ (crates.owning_ref."${deps."parking_lot"."0.5.5".owning_ref}" deps) ] else []));
-    features = mkFeatures (features."parking_lot"."0.5.5" or {});
-  };
-  features_.parking_lot."0.5.5" = deps: f: updateFeatures f (rec {
-    owning_ref."${deps.parking_lot."0.5.5".owning_ref}".default = true;
-    parking_lot = fold recursiveUpdate {} [
-      { "0.5.5"."owning_ref" =
-        (f.parking_lot."0.5.5"."owning_ref" or false) ||
-        (f.parking_lot."0.5.5".default or false) ||
-        (parking_lot."0.5.5"."default" or false); }
-      { "0.5.5".default = (f.parking_lot."0.5.5".default or true); }
-    ];
-    parking_lot_core = fold recursiveUpdate {} [
-      { "${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" =
-        (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."deadlock_detection" or false) ||
-        (parking_lot."0.5.5"."deadlock_detection" or false) ||
-        (f."parking_lot"."0.5.5"."deadlock_detection" or false); }
-      { "${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" =
-        (f.parking_lot_core."${deps.parking_lot."0.5.5".parking_lot_core}"."nightly" or false) ||
-        (parking_lot."0.5.5"."nightly" or false) ||
-        (f."parking_lot"."0.5.5"."nightly" or false); }
-      { "${deps.parking_lot."0.5.5".parking_lot_core}".default = true; }
-    ];
-  }) [
-    (features_.owning_ref."${deps."parking_lot"."0.5.5"."owning_ref"}" deps)
-    (features_.parking_lot_core."${deps."parking_lot"."0.5.5"."parking_lot_core"}" deps)
-  ];
-
-
-# end
-# parking_lot_core-0.2.14
-
-  crates.parking_lot_core."0.2.14" = deps: { features?(features_.parking_lot_core."0.2.14" deps {}) }: buildRustCrate {
-    crateName = "parking_lot_core";
-    version = "0.2.14";
-    description = "An advanced API for creating custom synchronization primitives.";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0giypb8ckkpi34p14nfk4b19c7przj4jxs95gs7x2v5ncmi0y286";
-    dependencies = mapFeatures features ([
-      (crates."rand"."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
-      (crates."smallvec"."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."libc"."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."parking_lot_core"."0.2.14" or {});
-  };
-  features_.parking_lot_core."0.2.14" = deps: f: updateFeatures f (rec {
-    libc."${deps.parking_lot_core."0.2.14".libc}".default = true;
-    parking_lot_core = fold recursiveUpdate {} [
-      { "0.2.14"."backtrace" =
-        (f.parking_lot_core."0.2.14"."backtrace" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14"."petgraph" =
-        (f.parking_lot_core."0.2.14"."petgraph" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14"."thread-id" =
-        (f.parking_lot_core."0.2.14"."thread-id" or false) ||
-        (f.parking_lot_core."0.2.14".deadlock_detection or false) ||
-        (parking_lot_core."0.2.14"."deadlock_detection" or false); }
-      { "0.2.14".default = (f.parking_lot_core."0.2.14".default or true); }
-    ];
-    rand."${deps.parking_lot_core."0.2.14".rand}".default = true;
-    smallvec."${deps.parking_lot_core."0.2.14".smallvec}".default = true;
-    winapi = fold recursiveUpdate {} [
-      { "${deps.parking_lot_core."0.2.14".winapi}"."errhandlingapi" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."handleapi" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."minwindef" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."ntstatus" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winbase" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winerror" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}"."winnt" = true; }
-      { "${deps.parking_lot_core."0.2.14".winapi}".default = true; }
-    ];
-  }) [
-    (features_.rand."${deps."parking_lot_core"."0.2.14"."rand"}" deps)
-    (features_.smallvec."${deps."parking_lot_core"."0.2.14"."smallvec"}" deps)
-    (features_.libc."${deps."parking_lot_core"."0.2.14"."libc"}" deps)
-    (features_.winapi."${deps."parking_lot_core"."0.2.14"."winapi"}" deps)
-  ];
-
-
-# end
-# quote-0.3.15
-
-  crates.quote."0.3.15" = deps: { features?(features_.quote."0.3.15" deps {}) }: buildRustCrate {
-    crateName = "quote";
-    version = "0.3.15";
-    description = "Quasi-quoting macro quote!(...)";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "09il61jv4kd1360spaj46qwyl21fv1qz18fsv2jra8wdnlgl5jsg";
-  };
-  features_.quote."0.3.15" = deps: f: updateFeatures f (rec {
-    quote."0.3.15".default = (f.quote."0.3.15".default or true);
-  }) [];
-
-
-# end
-# rand-0.4.2
-
-  crates.rand."0.4.2" = deps: { features?(features_.rand."0.4.2" deps {}) }: buildRustCrate {
-    crateName = "rand";
-    version = "0.4.2";
-    description = "Random number generators and other randomness functionality.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0h8pkg23wb67i8904sm76iyr1jlmhklb85vbpz9c9191a24xzkfm";
-    dependencies = (if kernel == "fuchsia" then mapFeatures features ([
-      (crates."fuchsia_zircon"."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
-    ]) else [])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-    ]
-      ++ (if features.rand."0.4.2".libc or false then [ (crates.libc."${deps."rand"."0.4.2".libc}" deps) ] else [])) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."rand"."0.4.2"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."rand"."0.4.2" or {});
-  };
-  features_.rand."0.4.2" = deps: f: updateFeatures f (rec {
-    fuchsia_zircon."${deps.rand."0.4.2".fuchsia_zircon}".default = true;
-    libc."${deps.rand."0.4.2".libc}".default = true;
-    rand = fold recursiveUpdate {} [
-      { "0.4.2"."i128_support" =
-        (f.rand."0.4.2"."i128_support" or false) ||
-        (f.rand."0.4.2".nightly or false) ||
-        (rand."0.4.2"."nightly" or false); }
-      { "0.4.2"."libc" =
-        (f.rand."0.4.2"."libc" or false) ||
-        (f.rand."0.4.2".std or false) ||
-        (rand."0.4.2"."std" or false); }
-      { "0.4.2"."std" =
-        (f.rand."0.4.2"."std" or false) ||
-        (f.rand."0.4.2".default or false) ||
-        (rand."0.4.2"."default" or false); }
-      { "0.4.2".default = (f.rand."0.4.2".default or true); }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.rand."0.4.2".winapi}"."minwindef" = true; }
-      { "${deps.rand."0.4.2".winapi}"."ntsecapi" = true; }
-      { "${deps.rand."0.4.2".winapi}"."profileapi" = true; }
-      { "${deps.rand."0.4.2".winapi}"."winnt" = true; }
-      { "${deps.rand."0.4.2".winapi}".default = true; }
-    ];
-  }) [
-    (features_.fuchsia_zircon."${deps."rand"."0.4.2"."fuchsia_zircon"}" deps)
-    (features_.libc."${deps."rand"."0.4.2"."libc"}" deps)
-    (features_.winapi."${deps."rand"."0.4.2"."winapi"}" deps)
-  ];
-
-
-# end
-# redox_syscall-0.1.37
-
-  crates.redox_syscall."0.1.37" = deps: { features?(features_.redox_syscall."0.1.37" deps {}) }: buildRustCrate {
-    crateName = "redox_syscall";
-    version = "0.1.37";
-    description = "A Rust library to access raw Redox system calls";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "0qa0jl9cr3qp80an8vshp2mcn8rzvwiavs1398hq1vsjw7pc3h2v";
-    libName = "syscall";
-  };
-  features_.redox_syscall."0.1.37" = deps: f: updateFeatures f (rec {
-    redox_syscall."0.1.37".default = (f.redox_syscall."0.1.37".default or true);
-  }) [];
-
-
-# end
-# redox_termios-0.1.1
-
-  crates.redox_termios."0.1.1" = deps: { features?(features_.redox_termios."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "redox_termios";
-    version = "0.1.1";
-    description = "A Rust library to access Redox termios functions";
-    authors = [ "Jeremy Soller <jackpot51@gmail.com>" ];
-    sha256 = "04s6yyzjca552hdaqlvqhp3vw0zqbc304md5czyd3axh56iry8wh";
-    libPath = "src/lib.rs";
-    dependencies = mapFeatures features ([
-      (crates."redox_syscall"."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
-    ]);
-  };
-  features_.redox_termios."0.1.1" = deps: f: updateFeatures f (rec {
-    redox_syscall."${deps.redox_termios."0.1.1".redox_syscall}".default = true;
-    redox_termios."0.1.1".default = (f.redox_termios."0.1.1".default or true);
-  }) [
-    (features_.redox_syscall."${deps."redox_termios"."0.1.1"."redox_syscall"}" deps)
-  ];
-
-
-# end
-# regex-0.2.11
-
-  crates.regex."0.2.11" = deps: { features?(features_.regex."0.2.11" deps {}) }: buildRustCrate {
-    crateName = "regex";
-    version = "0.2.11";
-    description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "0r50cymxdqp0fv1dxd22mjr6y32q450nwacd279p9s7lh0cafijj";
-    dependencies = mapFeatures features ([
-      (crates."aho_corasick"."${deps."regex"."0.2.11"."aho_corasick"}" deps)
-      (crates."memchr"."${deps."regex"."0.2.11"."memchr"}" deps)
-      (crates."regex_syntax"."${deps."regex"."0.2.11"."regex_syntax"}" deps)
-      (crates."thread_local"."${deps."regex"."0.2.11"."thread_local"}" deps)
-      (crates."utf8_ranges"."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
-    ]);
-    features = mkFeatures (features."regex"."0.2.11" or {});
-  };
-  features_.regex."0.2.11" = deps: f: updateFeatures f (rec {
-    aho_corasick."${deps.regex."0.2.11".aho_corasick}".default = true;
-    memchr."${deps.regex."0.2.11".memchr}".default = true;
-    regex = fold recursiveUpdate {} [
-      { "0.2.11"."pattern" =
-        (f.regex."0.2.11"."pattern" or false) ||
-        (f.regex."0.2.11".unstable or false) ||
-        (regex."0.2.11"."unstable" or false); }
-      { "0.2.11".default = (f.regex."0.2.11".default or true); }
-    ];
-    regex_syntax."${deps.regex."0.2.11".regex_syntax}".default = true;
-    thread_local."${deps.regex."0.2.11".thread_local}".default = true;
-    utf8_ranges."${deps.regex."0.2.11".utf8_ranges}".default = true;
-  }) [
-    (features_.aho_corasick."${deps."regex"."0.2.11"."aho_corasick"}" deps)
-    (features_.memchr."${deps."regex"."0.2.11"."memchr"}" deps)
-    (features_.regex_syntax."${deps."regex"."0.2.11"."regex_syntax"}" deps)
-    (features_.thread_local."${deps."regex"."0.2.11"."thread_local"}" deps)
-    (features_.utf8_ranges."${deps."regex"."0.2.11"."utf8_ranges"}" deps)
-  ];
-
-
-# end
-# regex-1.0.0
-
-  crates.regex."1.0.0" = deps: { features?(features_.regex."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "regex";
-    version = "1.0.0";
-    description = "An implementation of regular expressions for Rust. This implementation uses\nfinite automata and guarantees linear time matching on all inputs.\n";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1wynl7jmf6l2fnsayw1bzfh7km4wwqnqfpi8anj7wbhdk17i6j6b";
-    dependencies = mapFeatures features ([
-      (crates."aho_corasick"."${deps."regex"."1.0.0"."aho_corasick"}" deps)
-      (crates."memchr"."${deps."regex"."1.0.0"."memchr"}" deps)
-      (crates."regex_syntax"."${deps."regex"."1.0.0"."regex_syntax"}" deps)
-      (crates."thread_local"."${deps."regex"."1.0.0"."thread_local"}" deps)
-      (crates."utf8_ranges"."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
-    ]);
-    features = mkFeatures (features."regex"."1.0.0" or {});
-  };
-  features_.regex."1.0.0" = deps: f: updateFeatures f (rec {
-    aho_corasick."${deps.regex."1.0.0".aho_corasick}".default = true;
-    memchr."${deps.regex."1.0.0".memchr}".default = true;
-    regex = fold recursiveUpdate {} [
-      { "1.0.0"."pattern" =
-        (f.regex."1.0.0"."pattern" or false) ||
-        (f.regex."1.0.0".unstable or false) ||
-        (regex."1.0.0"."unstable" or false); }
-      { "1.0.0"."use_std" =
-        (f.regex."1.0.0"."use_std" or false) ||
-        (f.regex."1.0.0".default or false) ||
-        (regex."1.0.0"."default" or false); }
-      { "1.0.0".default = (f.regex."1.0.0".default or true); }
-    ];
-    regex_syntax."${deps.regex."1.0.0".regex_syntax}".default = true;
-    thread_local."${deps.regex."1.0.0".thread_local}".default = true;
-    utf8_ranges."${deps.regex."1.0.0".utf8_ranges}".default = true;
-  }) [
-    (features_.aho_corasick."${deps."regex"."1.0.0"."aho_corasick"}" deps)
-    (features_.memchr."${deps."regex"."1.0.0"."memchr"}" deps)
-    (features_.regex_syntax."${deps."regex"."1.0.0"."regex_syntax"}" deps)
-    (features_.thread_local."${deps."regex"."1.0.0"."thread_local"}" deps)
-    (features_.utf8_ranges."${deps."regex"."1.0.0"."utf8_ranges"}" deps)
-  ];
-
-
-# end
-# regex-syntax-0.5.6
-
-  crates.regex_syntax."0.5.6" = deps: { features?(features_.regex_syntax."0.5.6" deps {}) }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.5.6";
-    description = "A regular expression parser.";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "10vf3r34bgjnbrnqd5aszn35bjvm8insw498l1vjy8zx5yms3427";
-    dependencies = mapFeatures features ([
-      (crates."ucd_util"."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
-    ]);
-  };
-  features_.regex_syntax."0.5.6" = deps: f: updateFeatures f (rec {
-    regex_syntax."0.5.6".default = (f.regex_syntax."0.5.6".default or true);
-    ucd_util."${deps.regex_syntax."0.5.6".ucd_util}".default = true;
-  }) [
-    (features_.ucd_util."${deps."regex_syntax"."0.5.6"."ucd_util"}" deps)
-  ];
-
-
-# end
-# regex-syntax-0.6.0
-
-  crates.regex_syntax."0.6.0" = deps: { features?(features_.regex_syntax."0.6.0" deps {}) }: buildRustCrate {
-    crateName = "regex-syntax";
-    version = "0.6.0";
-    description = "A regular expression parser.";
-    authors = [ "The Rust Project Developers" ];
-    sha256 = "1zlaq3y1zbiqilxbh0471bizcs4p14b58nqr815w3ssyam169cy6";
-    dependencies = mapFeatures features ([
-      (crates."ucd_util"."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
-    ]);
-  };
-  features_.regex_syntax."0.6.0" = deps: f: updateFeatures f (rec {
-    regex_syntax."0.6.0".default = (f.regex_syntax."0.6.0".default or true);
-    ucd_util."${deps.regex_syntax."0.6.0".ucd_util}".default = true;
-  }) [
-    (features_.ucd_util."${deps."regex_syntax"."0.6.0"."ucd_util"}" deps)
-  ];
-
-
-# end
-# rustc-demangle-0.1.8
-
-  crates.rustc_demangle."0.1.8" = deps: { features?(features_.rustc_demangle."0.1.8" deps {}) }: buildRustCrate {
-    crateName = "rustc-demangle";
-    version = "0.1.8";
-    description = "Rust compiler symbol demangling.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0xn5l86qfwngmdsjbglj30wh37zplvch96jl9raysl3k06gkkv3c";
-  };
-  features_.rustc_demangle."0.1.8" = deps: f: updateFeatures f (rec {
-    rustc_demangle."0.1.8".default = (f.rustc_demangle."0.1.8".default or true);
-  }) [];
-
-
-# end
-# smallvec-0.6.1
-
-  crates.smallvec."0.6.1" = deps: { features?(features_.smallvec."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "smallvec";
-    version = "0.6.1";
-    description = "'Small vector' optimization: store up to a small number of items on the stack";
-    authors = [ "Simon Sapin <simon.sapin@exyr.org>" ];
-    sha256 = "16m07xh67xcdpwjkbzbv9d7visxmz4fb4a8jfcrsrf333w7vkl1g";
-    libPath = "lib.rs";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."smallvec"."0.6.1" or {});
-  };
-  features_.smallvec."0.6.1" = deps: f: updateFeatures f (rec {
-    smallvec = fold recursiveUpdate {} [
-      { "0.6.1"."std" =
-        (f.smallvec."0.6.1"."std" or false) ||
-        (f.smallvec."0.6.1".default or false) ||
-        (smallvec."0.6.1"."default" or false); }
-      { "0.6.1".default = (f.smallvec."0.6.1".default or true); }
-    ];
-  }) [];
-
-
-# end
-# socket2-0.3.5
-
-  crates.socket2."0.3.5" = deps: { features?(features_.socket2."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "socket2";
-    version = "0.3.5";
-    description = "Utilities for handling networking sockets with a maximal amount of configuration\npossible intended.\n";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" ];
-    sha256 = "0bi6z6qvra16rwm3lk7xz4aakvcmmak6fpdmra1v7ccp40bss0kf";
-    dependencies = (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."cfg_if"."${deps."socket2"."0.3.5"."cfg_if"}" deps)
-      (crates."libc"."${deps."socket2"."0.3.5"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."winapi"."${deps."socket2"."0.3.5"."winapi"}" deps)
-    ]) else []);
-    features = mkFeatures (features."socket2"."0.3.5" or {});
-  };
-  features_.socket2."0.3.5" = deps: f: updateFeatures f (rec {
-    cfg_if."${deps.socket2."0.3.5".cfg_if}".default = true;
-    libc."${deps.socket2."0.3.5".libc}".default = true;
-    socket2."0.3.5".default = (f.socket2."0.3.5".default or true);
-    winapi = fold recursiveUpdate {} [
-      { "${deps.socket2."0.3.5".winapi}"."handleapi" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."minwindef" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2def" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2ipdef" = true; }
-      { "${deps.socket2."0.3.5".winapi}"."ws2tcpip" = true; }
-      { "${deps.socket2."0.3.5".winapi}".default = true; }
-    ];
-  }) [
-    (features_.cfg_if."${deps."socket2"."0.3.5"."cfg_if"}" deps)
-    (features_.libc."${deps."socket2"."0.3.5"."libc"}" deps)
-    (features_.winapi."${deps."socket2"."0.3.5"."winapi"}" deps)
-  ];
-
-
-# end
-# stable_deref_trait-1.0.0
-
-  crates.stable_deref_trait."1.0.0" = deps: { features?(features_.stable_deref_trait."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "stable_deref_trait";
-    version = "1.0.0";
-    description = "An unsafe marker trait for types like Box and Rc that dereference to a stable address even when moved, and hence can be used with libraries such as owning_ref and rental.\n";
-    authors = [ "Robert Grosse <n210241048576@gmail.com>" ];
-    sha256 = "0ya5fms9qdwkd52d3a111w4vcz18j4rbfx4p88z44116cqd6cczr";
-    features = mkFeatures (features."stable_deref_trait"."1.0.0" or {});
-  };
-  features_.stable_deref_trait."1.0.0" = deps: f: updateFeatures f (rec {
-    stable_deref_trait = fold recursiveUpdate {} [
-      { "1.0.0"."std" =
-        (f.stable_deref_trait."1.0.0"."std" or false) ||
-        (f.stable_deref_trait."1.0.0".default or false) ||
-        (stable_deref_trait."1.0.0"."default" or false); }
-      { "1.0.0".default = (f.stable_deref_trait."1.0.0".default or true); }
-    ];
-  }) [];
-
-
-# end
-# strsim-0.7.0
-
-  crates.strsim."0.7.0" = deps: { features?(features_.strsim."0.7.0" deps {}) }: buildRustCrate {
-    crateName = "strsim";
-    version = "0.7.0";
-    description = "Implementations of string similarity metrics.\nIncludes Hamming, Levenshtein, OSA, Damerau-Levenshtein, Jaro, and Jaro-Winkler.\n";
-    authors = [ "Danny Guo <dannyguo91@gmail.com>" ];
-    sha256 = "0fy0k5f2705z73mb3x9459bpcvrx4ky8jpr4zikcbiwan4bnm0iv";
-  };
-  features_.strsim."0.7.0" = deps: f: updateFeatures f (rec {
-    strsim."0.7.0".default = (f.strsim."0.7.0".default or true);
-  }) [];
-
-
-# end
-# syn-0.11.11
-
-  crates.syn."0.11.11" = deps: { features?(features_.syn."0.11.11" deps {}) }: buildRustCrate {
-    crateName = "syn";
-    version = "0.11.11";
-    description = "Nom parser for Rust source code";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "0yw8ng7x1dn5a6ykg0ib49y7r9nhzgpiq2989rqdp7rdz3n85502";
-    dependencies = mapFeatures features ([
-    ]
-      ++ (if features.syn."0.11.11".quote or false then [ (crates.quote."${deps."syn"."0.11.11".quote}" deps) ] else [])
-      ++ (if features.syn."0.11.11".synom or false then [ (crates.synom."${deps."syn"."0.11.11".synom}" deps) ] else [])
-      ++ (if features.syn."0.11.11".unicode-xid or false then [ (crates.unicode_xid."${deps."syn"."0.11.11".unicode_xid}" deps) ] else []));
-    features = mkFeatures (features."syn"."0.11.11" or {});
-  };
-  features_.syn."0.11.11" = deps: f: updateFeatures f (rec {
-    quote."${deps.syn."0.11.11".quote}".default = true;
-    syn = fold recursiveUpdate {} [
-      { "0.11.11"."parsing" =
-        (f.syn."0.11.11"."parsing" or false) ||
-        (f.syn."0.11.11".default or false) ||
-        (syn."0.11.11"."default" or false); }
-      { "0.11.11"."printing" =
-        (f.syn."0.11.11"."printing" or false) ||
-        (f.syn."0.11.11".default or false) ||
-        (syn."0.11.11"."default" or false); }
-      { "0.11.11"."quote" =
-        (f.syn."0.11.11"."quote" or false) ||
-        (f.syn."0.11.11".printing or false) ||
-        (syn."0.11.11"."printing" or false); }
-      { "0.11.11"."synom" =
-        (f.syn."0.11.11"."synom" or false) ||
-        (f.syn."0.11.11".parsing or false) ||
-        (syn."0.11.11"."parsing" or false); }
-      { "0.11.11"."unicode-xid" =
-        (f.syn."0.11.11"."unicode-xid" or false) ||
-        (f.syn."0.11.11".parsing or false) ||
-        (syn."0.11.11"."parsing" or false); }
-      { "0.11.11".default = (f.syn."0.11.11".default or true); }
-    ];
-    synom."${deps.syn."0.11.11".synom}".default = true;
-    unicode_xid."${deps.syn."0.11.11".unicode_xid}".default = true;
-  }) [
-    (features_.quote."${deps."syn"."0.11.11"."quote"}" deps)
-    (features_.synom."${deps."syn"."0.11.11"."synom"}" deps)
-    (features_.unicode_xid."${deps."syn"."0.11.11"."unicode_xid"}" deps)
-  ];
-
-
-# end
-# synom-0.11.3
-
-  crates.synom."0.11.3" = deps: { features?(features_.synom."0.11.3" deps {}) }: buildRustCrate {
-    crateName = "synom";
-    version = "0.11.3";
-    description = "Stripped-down Nom parser used by Syn";
-    authors = [ "David Tolnay <dtolnay@gmail.com>" ];
-    sha256 = "1l6d1s9qjfp6ng2s2z8219igvlv7gyk8gby97sdykqc1r93d8rhc";
-    dependencies = mapFeatures features ([
-      (crates."unicode_xid"."${deps."synom"."0.11.3"."unicode_xid"}" deps)
-    ]);
-  };
-  features_.synom."0.11.3" = deps: f: updateFeatures f (rec {
-    synom."0.11.3".default = (f.synom."0.11.3".default or true);
-    unicode_xid."${deps.synom."0.11.3".unicode_xid}".default = true;
-  }) [
-    (features_.unicode_xid."${deps."synom"."0.11.3"."unicode_xid"}" deps)
-  ];
-
-
-# end
-# synstructure-0.6.1
-
-  crates.synstructure."0.6.1" = deps: { features?(features_.synstructure."0.6.1" deps {}) }: buildRustCrate {
-    crateName = "synstructure";
-    version = "0.6.1";
-    description = "expand_substructure-like helpers for syn macros 1.1 derive macros";
-    authors = [ "Michael Layzell <michael@thelayzells.com>" ];
-    sha256 = "1xnyw58va9zcqi4vvpnmpllacdj2a0mvy0cbd698izmr4qs92xlk";
-    dependencies = mapFeatures features ([
-      (crates."quote"."${deps."synstructure"."0.6.1"."quote"}" deps)
-      (crates."syn"."${deps."synstructure"."0.6.1"."syn"}" deps)
-    ]);
-    features = mkFeatures (features."synstructure"."0.6.1" or {});
-  };
-  features_.synstructure."0.6.1" = deps: f: updateFeatures f (rec {
-    quote."${deps.synstructure."0.6.1".quote}".default = true;
-    syn = fold recursiveUpdate {} [
-      { "${deps.synstructure."0.6.1".syn}"."visit" = true; }
-      { "${deps.synstructure."0.6.1".syn}".default = true; }
-    ];
-    synstructure."0.6.1".default = (f.synstructure."0.6.1".default or true);
-  }) [
-    (features_.quote."${deps."synstructure"."0.6.1"."quote"}" deps)
-    (features_.syn."${deps."synstructure"."0.6.1"."syn"}" deps)
-  ];
-
-
-# end
-# systemfd-0.3.0
-
-  crates.systemfd."0.3.0" = deps: { features?(features_.systemfd."0.3.0" deps {}) }: buildRustCrate {
-    crateName = "systemfd";
-    version = "0.3.0";
-    description = "A convenient helper for passing sockets into another process.  Best to be combined with listenfd and cargo-watch.";
-    authors = [ "Armin Ronacher <armin.ronacher@active-4.com>" ];
-    sha256 = "0dpckgb0afyzhbv8lccgzmw5yczpfcdsdlqsfncn1vcxvcf0yb5i";
-    dependencies = mapFeatures features ([
-      (crates."clap"."${deps."systemfd"."0.3.0"."clap"}" deps)
-      (crates."console"."${deps."systemfd"."0.3.0"."console"}" deps)
-      (crates."failure"."${deps."systemfd"."0.3.0"."failure"}" deps)
-      (crates."failure_derive"."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
-      (crates."lazy_static"."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
-      (crates."libc"."${deps."systemfd"."0.3.0"."libc"}" deps)
-      (crates."regex"."${deps."systemfd"."0.3.0"."regex"}" deps)
-    ])
-      ++ (if (kernel == "linux" || kernel == "darwin") then mapFeatures features ([
-      (crates."nix"."${deps."systemfd"."0.3.0"."nix"}" deps)
-    ]) else [])
-      ++ (if kernel == "windows" then mapFeatures features ([
-      (crates."socket2"."${deps."systemfd"."0.3.0"."socket2"}" deps)
-      (crates."uuid"."${deps."systemfd"."0.3.0"."uuid"}" deps)
-      (crates."winapi"."${deps."systemfd"."0.3.0"."winapi"}" deps)
-    ]) else []);
-  };
-  features_.systemfd."0.3.0" = deps: f: updateFeatures f (rec {
-    clap."${deps.systemfd."0.3.0".clap}".default = true;
-    console."${deps.systemfd."0.3.0".console}".default = true;
-    failure."${deps.systemfd."0.3.0".failure}".default = true;
-    failure_derive."${deps.systemfd."0.3.0".failure_derive}".default = true;
-    lazy_static."${deps.systemfd."0.3.0".lazy_static}".default = true;
-    libc."${deps.systemfd."0.3.0".libc}".default = true;
-    nix."${deps.systemfd."0.3.0".nix}".default = true;
-    regex."${deps.systemfd."0.3.0".regex}".default = true;
-    socket2."${deps.systemfd."0.3.0".socket2}".default = true;
-    systemfd."0.3.0".default = (f.systemfd."0.3.0".default or true);
-    uuid = fold recursiveUpdate {} [
-      { "${deps.systemfd."0.3.0".uuid}"."v4" = true; }
-      { "${deps.systemfd."0.3.0".uuid}".default = true; }
-    ];
-    winapi = fold recursiveUpdate {} [
-      { "${deps.systemfd."0.3.0".winapi}"."winsock2" = true; }
-      { "${deps.systemfd."0.3.0".winapi}".default = true; }
-    ];
-  }) [
-    (features_.clap."${deps."systemfd"."0.3.0"."clap"}" deps)
-    (features_.console."${deps."systemfd"."0.3.0"."console"}" deps)
-    (features_.failure."${deps."systemfd"."0.3.0"."failure"}" deps)
-    (features_.failure_derive."${deps."systemfd"."0.3.0"."failure_derive"}" deps)
-    (features_.lazy_static."${deps."systemfd"."0.3.0"."lazy_static"}" deps)
-    (features_.libc."${deps."systemfd"."0.3.0"."libc"}" deps)
-    (features_.regex."${deps."systemfd"."0.3.0"."regex"}" deps)
-    (features_.nix."${deps."systemfd"."0.3.0"."nix"}" deps)
-    (features_.socket2."${deps."systemfd"."0.3.0"."socket2"}" deps)
-    (features_.uuid."${deps."systemfd"."0.3.0"."uuid"}" deps)
-    (features_.winapi."${deps."systemfd"."0.3.0"."winapi"}" deps)
-  ];
-
-
-# end
-# termion-1.5.1
-
-  crates.termion."1.5.1" = deps: { features?(features_.termion."1.5.1" deps {}) }: buildRustCrate {
-    crateName = "termion";
-    version = "1.5.1";
-    description = "A bindless library for manipulating terminals.";
-    authors = [ "ticki <Ticki@users.noreply.github.com>" "gycos <alexandre.bury@gmail.com>" "IGI-111 <igi-111@protonmail.com>" ];
-    sha256 = "02gq4vd8iws1f3gjrgrgpajsk2bk43nds5acbbb4s8dvrdvr8nf1";
-    dependencies = (if !(kernel == "redox") then mapFeatures features ([
-      (crates."libc"."${deps."termion"."1.5.1"."libc"}" deps)
-    ]) else [])
-      ++ (if kernel == "redox" then mapFeatures features ([
-      (crates."redox_syscall"."${deps."termion"."1.5.1"."redox_syscall"}" deps)
-      (crates."redox_termios"."${deps."termion"."1.5.1"."redox_termios"}" deps)
-    ]) else []);
-  };
-  features_.termion."1.5.1" = deps: f: updateFeatures f (rec {
-    libc."${deps.termion."1.5.1".libc}".default = true;
-    redox_syscall."${deps.termion."1.5.1".redox_syscall}".default = true;
-    redox_termios."${deps.termion."1.5.1".redox_termios}".default = true;
-    termion."1.5.1".default = (f.termion."1.5.1".default or true);
-  }) [
-    (features_.libc."${deps."termion"."1.5.1"."libc"}" deps)
-    (features_.redox_syscall."${deps."termion"."1.5.1"."redox_syscall"}" deps)
-    (features_.redox_termios."${deps."termion"."1.5.1"."redox_termios"}" deps)
-  ];
-
-
-# end
-# termios-0.2.2
-
-  crates.termios."0.2.2" = deps: { features?(features_.termios."0.2.2" deps {}) }: buildRustCrate {
-    crateName = "termios";
-    version = "0.2.2";
-    description = "Safe bindings for the termios library.";
-    authors = [ "David Cuddeback <david.cuddeback@gmail.com>" ];
-    sha256 = "0hjy4idvcapx9i6qbhf5536aqnf6rqk2aaj424sfwy7qhv6xmcx3";
-    dependencies = mapFeatures features ([
-      (crates."libc"."${deps."termios"."0.2.2"."libc"}" deps)
-    ]);
-  };
-  features_.termios."0.2.2" = deps: f: updateFeatures f (rec {
-    libc."${deps.termios."0.2.2".libc}".default = true;
-    termios."0.2.2".default = (f.termios."0.2.2".default or true);
-  }) [
-    (features_.libc."${deps."termios"."0.2.2"."libc"}" deps)
-  ];
-
-
-# end
-# textwrap-0.9.0
-
-  crates.textwrap."0.9.0" = deps: { features?(features_.textwrap."0.9.0" deps {}) }: buildRustCrate {
-    crateName = "textwrap";
-    version = "0.9.0";
-    description = "Textwrap is a small library for word wrapping, indenting, and\ndedenting strings.\n\nYou can use it to format strings (such as help and error messages) for\ndisplay in commandline applications. It is designed to be efficient\nand handle Unicode characters correctly.\n";
-    authors = [ "Martin Geisler <martin@geisler.net>" ];
-    sha256 = "18jg79ndjlwndz01mlbh82kkr2arqm658yn5kwp65l5n1hz8w4yb";
-    dependencies = mapFeatures features ([
-      (crates."unicode_width"."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
-    ]);
-  };
-  features_.textwrap."0.9.0" = deps: f: updateFeatures f (rec {
-    textwrap."0.9.0".default = (f.textwrap."0.9.0".default or true);
-    unicode_width."${deps.textwrap."0.9.0".unicode_width}".default = true;
-  }) [
-    (features_.unicode_width."${deps."textwrap"."0.9.0"."unicode_width"}" deps)
-  ];
-
-
-# end
-# thread_local-0.3.5
-
-  crates.thread_local."0.3.5" = deps: { features?(features_.thread_local."0.3.5" deps {}) }: buildRustCrate {
-    crateName = "thread_local";
-    version = "0.3.5";
-    description = "Per-object thread-local storage";
-    authors = [ "Amanieu d'Antras <amanieu@gmail.com>" ];
-    sha256 = "0mkp0sp91aqsk7brgygai4igv751r1754rsxn37mig3ag5rx8np6";
-    dependencies = mapFeatures features ([
-      (crates."lazy_static"."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
-      (crates."unreachable"."${deps."thread_local"."0.3.5"."unreachable"}" deps)
-    ]);
-  };
-  features_.thread_local."0.3.5" = deps: f: updateFeatures f (rec {
-    lazy_static."${deps.thread_local."0.3.5".lazy_static}".default = true;
-    thread_local."0.3.5".default = (f.thread_local."0.3.5".default or true);
-    unreachable."${deps.thread_local."0.3.5".unreachable}".default = true;
-  }) [
-    (features_.lazy_static."${deps."thread_local"."0.3.5"."lazy_static"}" deps)
-    (features_.unreachable."${deps."thread_local"."0.3.5"."unreachable"}" deps)
-  ];
-
-
-# end
-# ucd-util-0.1.1
-
-  crates.ucd_util."0.1.1" = deps: { features?(features_.ucd_util."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "ucd-util";
-    version = "0.1.1";
-    description = "A small utility library for working with the Unicode character database.\n";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "02a8h3siipx52b832xc8m8rwasj6nx9jpiwfldw8hp6k205hgkn0";
-  };
-  features_.ucd_util."0.1.1" = deps: f: updateFeatures f (rec {
-    ucd_util."0.1.1".default = (f.ucd_util."0.1.1".default or true);
-  }) [];
-
-
-# end
-# unicode-width-0.1.4
-
-  crates.unicode_width."0.1.4" = deps: { features?(features_.unicode_width."0.1.4" deps {}) }: buildRustCrate {
-    crateName = "unicode-width";
-    version = "0.1.4";
-    description = "Determine displayed width of `char` and `str` types\naccording to Unicode Standard Annex #11 rules.\n";
-    authors = [ "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1rp7a04icn9y5c0lm74nrd4py0rdl0af8bhdwq7g478n1xifpifl";
-    features = mkFeatures (features."unicode_width"."0.1.4" or {});
-  };
-  features_.unicode_width."0.1.4" = deps: f: updateFeatures f (rec {
-    unicode_width."0.1.4".default = (f.unicode_width."0.1.4".default or true);
-  }) [];
-
-
-# end
-# unicode-xid-0.0.4
-
-  crates.unicode_xid."0.0.4" = deps: { features?(features_.unicode_xid."0.0.4" deps {}) }: buildRustCrate {
-    crateName = "unicode-xid";
-    version = "0.0.4";
-    description = "Determine whether characters have the XID_Start\nor XID_Continue properties according to\nUnicode Standard Annex #31.\n";
-    authors = [ "erick.tryzelaar <erick.tryzelaar@gmail.com>" "kwantam <kwantam@gmail.com>" ];
-    sha256 = "1dc8wkkcd3s6534s5aw4lbjn8m67flkkbnajp5bl8408wdg8rh9v";
-    features = mkFeatures (features."unicode_xid"."0.0.4" or {});
-  };
-  features_.unicode_xid."0.0.4" = deps: f: updateFeatures f (rec {
-    unicode_xid."0.0.4".default = (f.unicode_xid."0.0.4".default or true);
-  }) [];
-
-
-# end
-# unreachable-1.0.0
-
-  crates.unreachable."1.0.0" = deps: { features?(features_.unreachable."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "unreachable";
-    version = "1.0.0";
-    description = "An unreachable code optimization hint in stable rust.";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "1am8czbk5wwr25gbp2zr007744fxjshhdqjz9liz7wl4pnv3whcf";
-    dependencies = mapFeatures features ([
-      (crates."void"."${deps."unreachable"."1.0.0"."void"}" deps)
-    ]);
-  };
-  features_.unreachable."1.0.0" = deps: f: updateFeatures f (rec {
-    unreachable."1.0.0".default = (f.unreachable."1.0.0".default or true);
-    void."${deps.unreachable."1.0.0".void}".default = (f.void."${deps.unreachable."1.0.0".void}".default or false);
-  }) [
-    (features_.void."${deps."unreachable"."1.0.0"."void"}" deps)
-  ];
-
-
-# end
-# utf8-ranges-1.0.0
-
-  crates.utf8_ranges."1.0.0" = deps: { features?(features_.utf8_ranges."1.0.0" deps {}) }: buildRustCrate {
-    crateName = "utf8-ranges";
-    version = "1.0.0";
-    description = "Convert ranges of Unicode codepoints to UTF-8 byte ranges.";
-    authors = [ "Andrew Gallant <jamslam@gmail.com>" ];
-    sha256 = "0rzmqprwjv9yp1n0qqgahgm24872x6c0xddfym5pfndy7a36vkn0";
-  };
-  features_.utf8_ranges."1.0.0" = deps: f: updateFeatures f (rec {
-    utf8_ranges."1.0.0".default = (f.utf8_ranges."1.0.0".default or true);
-  }) [];
-
-
-# end
-# uuid-0.6.3
-
-  crates.uuid."0.6.3" = deps: { features?(features_.uuid."0.6.3" deps {}) }: buildRustCrate {
-    crateName = "uuid";
-    version = "0.6.3";
-    description = "A library to generate and parse UUIDs.\n";
-    authors = [ "Ashley Mannix<ashleymannix@live.com.au>" "Christopher Armstrong" "Dylan DPC<dylan.dpc@gmail.com>" "Hunar Roop Kahlon<hunar.roop@gmail.com>" ];
-    sha256 = "1kjp5xglhab4saaikn95zn3mr4zja7484pv307cb5bxm2sawb8p6";
-    dependencies = mapFeatures features ([
-      (crates."cfg_if"."${deps."uuid"."0.6.3"."cfg_if"}" deps)
-    ]
-      ++ (if features.uuid."0.6.3".rand or false then [ (crates.rand."${deps."uuid"."0.6.3".rand}" deps) ] else []));
-    features = mkFeatures (features."uuid"."0.6.3" or {});
-  };
-  features_.uuid."0.6.3" = deps: f: updateFeatures f (rec {
-    cfg_if."${deps.uuid."0.6.3".cfg_if}".default = true;
-    rand."${deps.uuid."0.6.3".rand}".default = true;
-    uuid = fold recursiveUpdate {} [
-      { "0.6.3"."md5" =
-        (f.uuid."0.6.3"."md5" or false) ||
-        (f.uuid."0.6.3".v3 or false) ||
-        (uuid."0.6.3"."v3" or false); }
-      { "0.6.3"."rand" =
-        (f.uuid."0.6.3"."rand" or false) ||
-        (f.uuid."0.6.3".v3 or false) ||
-        (uuid."0.6.3"."v3" or false) ||
-        (f.uuid."0.6.3".v4 or false) ||
-        (uuid."0.6.3"."v4" or false) ||
-        (f.uuid."0.6.3".v5 or false) ||
-        (uuid."0.6.3"."v5" or false); }
-      { "0.6.3"."serde" =
-        (f.uuid."0.6.3"."serde" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."sha1" =
-        (f.uuid."0.6.3"."sha1" or false) ||
-        (f.uuid."0.6.3".v5 or false) ||
-        (uuid."0.6.3"."v5" or false); }
-      { "0.6.3"."std" =
-        (f.uuid."0.6.3"."std" or false) ||
-        (f.uuid."0.6.3".default or false) ||
-        (uuid."0.6.3"."default" or false) ||
-        (f.uuid."0.6.3".use_std or false) ||
-        (uuid."0.6.3"."use_std" or false); }
-      { "0.6.3"."v1" =
-        (f.uuid."0.6.3"."v1" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v3" =
-        (f.uuid."0.6.3"."v3" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v4" =
-        (f.uuid."0.6.3"."v4" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3"."v5" =
-        (f.uuid."0.6.3"."v5" or false) ||
-        (f.uuid."0.6.3".playground or false) ||
-        (uuid."0.6.3"."playground" or false); }
-      { "0.6.3".default = (f.uuid."0.6.3".default or true); }
-    ];
-  }) [
-    (features_.cfg_if."${deps."uuid"."0.6.3"."cfg_if"}" deps)
-    (features_.rand."${deps."uuid"."0.6.3"."rand"}" deps)
-  ];
-
-
-# end
-# vec_map-0.8.1
-
-  crates.vec_map."0.8.1" = deps: { features?(features_.vec_map."0.8.1" deps {}) }: buildRustCrate {
-    crateName = "vec_map";
-    version = "0.8.1";
-    description = "A simple map based on a vector for small integer keys";
-    authors = [ "Alex Crichton <alex@alexcrichton.com>" "Jorge Aparicio <japaricious@gmail.com>" "Alexis Beingessner <a.beingessner@gmail.com>" "Brian Anderson <>" "tbu- <>" "Manish Goregaokar <>" "Aaron Turon <aturon@mozilla.com>" "Adolfo Ochagavía <>" "Niko Matsakis <>" "Steven Fackler <>" "Chase Southwood <csouth3@illinois.edu>" "Eduard Burtescu <>" "Florian Wilkens <>" "Félix Raimundo <>" "Tibor Benke <>" "Markus Siemens <markus@m-siemens.de>" "Josh Branchaud <jbranchaud@gmail.com>" "Huon Wilson <dbau.pp@gmail.com>" "Corey Farwell <coref@rwell.org>" "Aaron Liblong <>" "Nick Cameron <nrc@ncameron.org>" "Patrick Walton <pcwalton@mimiga.net>" "Felix S Klock II <>" "Andrew Paseltiner <apaseltiner@gmail.com>" "Sean McArthur <sean.monstar@gmail.com>" "Vadim Petrochenkov <>" ];
-    sha256 = "1jj2nrg8h3l53d43rwkpkikq5a5x15ms4rf1rw92hp5lrqhi8mpi";
-    dependencies = mapFeatures features ([
-]);
-    features = mkFeatures (features."vec_map"."0.8.1" or {});
-  };
-  features_.vec_map."0.8.1" = deps: f: updateFeatures f (rec {
-    vec_map = fold recursiveUpdate {} [
-      { "0.8.1"."serde" =
-        (f.vec_map."0.8.1"."serde" or false) ||
-        (f.vec_map."0.8.1".eders or false) ||
-        (vec_map."0.8.1"."eders" or false); }
-      { "0.8.1".default = (f.vec_map."0.8.1".default or true); }
-    ];
-  }) [];
-
-
-# end
-# void-1.0.2
-
-  crates.void."1.0.2" = deps: { features?(features_.void."1.0.2" deps {}) }: buildRustCrate {
-    crateName = "void";
-    version = "1.0.2";
-    description = "The uninhabited void type for use in statically impossible cases.";
-    authors = [ "Jonathan Reem <jonathan.reem@gmail.com>" ];
-    sha256 = "0h1dm0dx8dhf56a83k68mijyxigqhizpskwxfdrs1drwv2cdclv3";
-    features = mkFeatures (features."void"."1.0.2" or {});
-  };
-  features_.void."1.0.2" = deps: f: updateFeatures f (rec {
-    void = fold recursiveUpdate {} [
-      { "1.0.2"."std" =
-        (f.void."1.0.2"."std" or false) ||
-        (f.void."1.0.2".default or false) ||
-        (void."1.0.2"."default" or false); }
-      { "1.0.2".default = (f.void."1.0.2".default or true); }
-    ];
-  }) [];
-
-
-# end
-# winapi-0.2.8
-
-  crates.winapi."0.2.8" = deps: { features?(features_.winapi."0.2.8" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.2.8";
-    description = "Types and constants for WinAPI bindings. See README for list of crates providing function bindings.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0a45b58ywf12vb7gvj6h3j264nydynmzyqz8d8rqxsj6icqv82as";
-  };
-  features_.winapi."0.2.8" = deps: f: updateFeatures f (rec {
-    winapi."0.2.8".default = (f.winapi."0.2.8".default or true);
-  }) [];
-
-
-# end
-# winapi-0.3.4
-
-  crates.winapi."0.3.4" = deps: { features?(features_.winapi."0.3.4" deps {}) }: buildRustCrate {
-    crateName = "winapi";
-    version = "0.3.4";
-    description = "Raw FFI bindings for all of Windows API.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1qbrf5dcnd8j36cawby5d9r5vx07r0l4ryf672pfncnp8895k9lx";
-    build = "build.rs";
-    dependencies = (if kernel == "i686-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_i686_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
-    ]) else [])
-      ++ (if kernel == "x86_64-pc-windows-gnu" then mapFeatures features ([
-      (crates."winapi_x86_64_pc_windows_gnu"."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
-    ]) else []);
-    features = mkFeatures (features."winapi"."0.3.4" or {});
-  };
-  features_.winapi."0.3.4" = deps: f: updateFeatures f (rec {
-    winapi."0.3.4".default = (f.winapi."0.3.4".default or true);
-    winapi_i686_pc_windows_gnu."${deps.winapi."0.3.4".winapi_i686_pc_windows_gnu}".default = true;
-    winapi_x86_64_pc_windows_gnu."${deps.winapi."0.3.4".winapi_x86_64_pc_windows_gnu}".default = true;
-  }) [
-    (features_.winapi_i686_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_i686_pc_windows_gnu"}" deps)
-    (features_.winapi_x86_64_pc_windows_gnu."${deps."winapi"."0.3.4"."winapi_x86_64_pc_windows_gnu"}" deps)
-  ];
-
-
-# end
-# winapi-build-0.1.1
-
-  crates.winapi_build."0.1.1" = deps: { features?(features_.winapi_build."0.1.1" deps {}) }: buildRustCrate {
-    crateName = "winapi-build";
-    version = "0.1.1";
-    description = "Common code for build.rs in WinAPI -sys crates.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "1lxlpi87rkhxcwp2ykf1ldw3p108hwm24nywf3jfrvmff4rjhqga";
-    libName = "build";
-  };
-  features_.winapi_build."0.1.1" = deps: f: updateFeatures f (rec {
-    winapi_build."0.1.1".default = (f.winapi_build."0.1.1".default or true);
-  }) [];
-
-
-# end
-# winapi-i686-pc-windows-gnu-0.4.0
-
-  crates.winapi_i686_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_i686_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-i686-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the i686-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "05ihkij18r4gamjpxj4gra24514can762imjzlmak5wlzidplzrp";
-    build = "build.rs";
-  };
-  features_.winapi_i686_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
-    winapi_i686_pc_windows_gnu."0.4.0".default = (f.winapi_i686_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-# winapi-x86_64-pc-windows-gnu-0.4.0
-
-  crates.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: { features?(features_.winapi_x86_64_pc_windows_gnu."0.4.0" deps {}) }: buildRustCrate {
-    crateName = "winapi-x86_64-pc-windows-gnu";
-    version = "0.4.0";
-    description = "Import libraries for the x86_64-pc-windows-gnu target. Please don't use this crate directly, depend on winapi instead.";
-    authors = [ "Peter Atashian <retep998@gmail.com>" ];
-    sha256 = "0n1ylmlsb8yg1v583i4xy0qmqg42275flvbc51hdqjjfjcl9vlbj";
-    build = "build.rs";
-  };
-  features_.winapi_x86_64_pc_windows_gnu."0.4.0" = deps: f: updateFeatures f (rec {
-    winapi_x86_64_pc_windows_gnu."0.4.0".default = (f.winapi_x86_64_pc_windows_gnu."0.4.0".default or true);
-  }) [];
-
-
-# end
-}
diff --git a/pkgs/development/tools/systemfd/default.nix b/pkgs/development/tools/systemfd/default.nix
index a1c93f46dcb70..a695cf83a2954 100644
--- a/pkgs/development/tools/systemfd/default.nix
+++ b/pkgs/development/tools/systemfd/default.nix
@@ -1,18 +1,32 @@
-{ lib, fetchgit, darwin, buildPlatform
-, buildRustCrate, buildRustCrateHelpers, defaultCrateOverrides }:
+{ lib
+, fetchFromGitHub
+, rustPlatform
+}:
 
-((import ./Cargo.nix {
-  inherit lib buildPlatform buildRustCrate buildRustCrateHelpers fetchgit;
-  cratesIO = import ./crates-io.nix { inherit lib buildRustCrate buildRustCrateHelpers; };
-}).systemfd {}).override {
-  crateOverrides = defaultCrateOverrides // {
-    systemfd = attrs: {
-        meta = {
-          description = "A convenient helper for passing sockets into another process";
-          homepage = "https://github.com/mitsuhiko/systemfd";
-          license = lib.licenses.asl20;
-          maintainers = [ lib.maintainers.adisbladis ];
-        };
-    };
+let
+  version = "0.4.0";
+
+in
+rustPlatform.buildRustPackage {
+
+  pname = "systemfd";
+  inherit version;
+
+  src = fetchFromGitHub {
+    repo = "systemfd";
+    owner = "mitsuhiko";
+    rev = version;
+    sha256 = "sha256-HUJgYPD4C9fMUYKpzmIy9gDT6HAZDWw1JLMKLgzRQTY=";
   };
+
+  cargoSha256 = "sha256-UhfE9Q5E79rN2mjkNB5IAN/J0fbpoy9CmM6ojHQcFP0=";
+
+  meta = {
+    description = "A convenient helper for passing sockets into another process";
+    homepage = "https://github.com/mitsuhiko/systemfd";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.adisbladis ];
+    platforms = lib.platforms.unix;
+  };
+
 }
diff --git a/pkgs/games/liquidwar/5.nix b/pkgs/games/liquidwar/5.nix
index e95371ec5eafc..eab7941cbd1cd 100644
--- a/pkgs/games/liquidwar/5.nix
+++ b/pkgs/games/liquidwar/5.nix
@@ -13,7 +13,14 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
-  NIX_CFLAGS_COMPILE = [ "-lm" ];
+  NIX_CFLAGS_COMPILE = [
+    # Workaround build failure on -fno-common toolchains like upstream
+    # gcc-10. Otherwise build fails as:
+    #   ld: random.o:(.bss+0x0): multiple definition of `LW_RANDOM_ON'; game.o:(.bss+0x4): first defined here
+    "-fcommon"
+
+    "-lm"
+  ];
 
   meta = with lib; {
     description = "The classic version of a quick tactics game LiquidWar";
diff --git a/pkgs/os-specific/darwin/dockutil/default.nix b/pkgs/os-specific/darwin/dockutil/default.nix
index d937ce8fd12a5..5e4187f07280f 100644
--- a/pkgs/os-specific/darwin/dockutil/default.nix
+++ b/pkgs/os-specific/darwin/dockutil/default.nix
@@ -1,24 +1,29 @@
-{ lib, stdenv, fetchFromGitHub }:
-
+{ lib, stdenv, fetchurl, libarchive, p7zip }:
 stdenv.mkDerivation rec {
   pname = "dockutil";
-  version = "2.0.5";
+  version = "3.0.2";
 
-  src = fetchFromGitHub {
-    owner  = "kcrawford";
-    repo   = "dockutil";
-    rev    = version;
-    sha256 = "sha256-8tDkueCTCtvxc7owp3K9Tsrn4hL79CM04zBNv7AcHgA=";
+  src = fetchurl {
+    url =
+      "https://github.com/kcrawford/dockutil/releases/download/${version}/dockutil-${version}.pkg";
+    sha256 = "175137ea747e83ed221d60b18b712b256ed31531534cde84f679487d337668fd";
   };
 
   dontBuild = true;
 
+  nativeBuildInputs = [ libarchive p7zip ];
+
+  unpackPhase = ''
+    7z x $src
+    bsdtar -xf Payload~
+  '';
+
   installPhase = ''
     runHook preInstall
-
     mkdir -p $out/bin
-    install -Dm755 scripts/dockutil -t $out/bin
-
+    mkdir -p $out/usr/local/bin
+    install -Dm755 usr/local/bin/dockutil -t $out/usr/local/bin
+    ln -rs $out/usr/local/bin/dockutil $out/bin/dockutil
     runHook postInstall
   '';
 
diff --git a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
index 8464b9ad25f82..14c4d00dccdcf 100644
--- a/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
+++ b/pkgs/os-specific/linux/kernel/xanmod-kernels.nix
@@ -2,15 +2,15 @@
 
 let
   stableVariant = {
-    version = "5.15.34";
+    version = "5.15.40";
     suffix = "xanmod1";
-    hash = "sha256-sfrcaFhrdvupygXvajGyl6ruuBu+vFsAKjLyINyV3pw=";
+    hash = "sha256-P9pRPfzBVQNhWp6ulDiBgV/ki2C0CTbIRV6KRhUD+vQ=";
   };
 
   edgeVariant = {
-    version = "5.17.2";
+    version = "5.17.8";
     suffix = "xanmod1";
-    hash = "sha256-DK6yFZewqmr/BXFW5tqKXtWb1OLfqokZRQLOQxvBg6Q=";
+    hash = "sha256-Q8YmBeocolr6Ds2inwV299Td6/zE8RTA1SWve5ZykAs=";
   };
 
   xanmodKernelFor = { version, suffix, hash }: buildLinux (args // rec {
@@ -69,7 +69,7 @@ let
 
     extraMeta = {
       branch = lib.versions.majorMinor version;
-      maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault ];
+      maintainers = with lib.maintainers; [ fortuneteller2k lovesegfault atemu ];
       description = "Built with custom settings and new features built to provide a stable, responsive and smooth desktop experience";
       broken = stdenv.isAarch64;
     };
diff --git a/pkgs/os-specific/linux/light/default.nix b/pkgs/os-specific/linux/light/default.nix
index 995381c53403c..6caa8e3945086 100644
--- a/pkgs/os-specific/linux/light/default.nix
+++ b/pkgs/os-specific/linux/light/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, coreutils }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, coreutils }:
 
 stdenv.mkDerivation rec {
   version = "1.2.2";
@@ -10,6 +10,16 @@ stdenv.mkDerivation rec {
     sha256 = "1a70zcf88ifsnwll486aicjnh48zisdf8f7vi34ihw61kdadsq9s";
   };
 
+  patches = [
+    # Pull upstream fix for -fno-common toolchains:
+    #  https://github.com/haikarainen/light/pull/135
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/haikarainen/light/commit/eae912ca7ff3356805e47739114861d2b6ae7ec0.patch";
+      sha256 = "15jp8hm5scl0myiy1jmvd6m52lhx5jscvi3rgb5siwakmnkgzx9j";
+    })
+  ];
+
   configureFlags = [ "--with-udev" ];
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/os-specific/linux/restool/default.nix b/pkgs/os-specific/linux/restool/default.nix
index 4f488c28323eb..83c7c93ffcd89 100644
--- a/pkgs/os-specific/linux/restool/default.nix
+++ b/pkgs/os-specific/linux/restool/default.nix
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
     "VERSION=${version}"
   ];
 
+  postPatch = ''
+    # -Werror makes this derivation fragile on compiler version upgrades, patch
+    # it out.
+    sed -i /-Werror/d Makefile
+  '';
+
   preFixup = ''
     # wrapProgram interacts badly with the ls-main tool, which relies on the
     # shell's $0 argument to figure out which operation to run (busybox-style
diff --git a/pkgs/servers/icingaweb2/ipl.nix b/pkgs/servers/icingaweb2/ipl.nix
index e9075d7d043a4..9d21951a299f6 100644
--- a/pkgs/servers/icingaweb2/ipl.nix
+++ b/pkgs/servers/icingaweb2/ipl.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "icingaweb2-ipl";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icinga-php-library";
     rev = "v${version}";
-    sha256 = "sha256:05k0qcd5c5xb124dpp6lvfdh4dzf6bkd34v4sy7aj776p4hrlqx2";
+    sha256 = "sha256:0ndd4gd26rglbz85izfvqc4ghcfa7wpq6ghrhggbzg819phndg5a";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/invidious/lsquic.nix b/pkgs/servers/invidious/lsquic.nix
index 9c3bc68615cad..ca04c97c12800 100644
--- a/pkgs/servers/invidious/lsquic.nix
+++ b/pkgs/servers/invidious/lsquic.nix
@@ -1,11 +1,19 @@
-{ lib, boringssl, stdenv, fetchgit, fetchFromGitHub, cmake, zlib, perl, libevent, gcc10Stdenv, buildGoModule }:
+{ lib, boringssl, stdenv, fetchgit, fetchFromGitHub, fetchurl, cmake, zlib, perl, libevent }:
 let
   versions = builtins.fromJSON (builtins.readFile ./versions.json);
 
-  buildGoModuleGcc10 = buildGoModule.override { stdenv = gcc10Stdenv; };
+  fetchGitilesPatch = { name, url, sha256 }:
+    fetchurl {
+      url = "${url}%5E%21?format=TEXT";
+      inherit name sha256;
+      downloadToTemp = true;
+      postFetch = ''
+        base64 -d < $downloadedFile > $out
+      '';
+    };
 
   # lsquic requires a specific boringssl version (noted in its README)
-  boringssl' = (boringssl.overrideAttrs (old: {
+  boringssl' = boringssl.overrideAttrs ({ preBuild, ... }: {
     version = versions.boringssl.rev;
     src = fetchgit {
       url = "https://boringssl.googlesource.com/boringssl";
@@ -15,10 +23,43 @@ let
     patches = [
       # Use /etc/ssl/certs/ca-certificates.crt instead of /etc/ssl/cert.pem
       ./use-etc-ssl-certs.patch
+
+      # because lsquic requires that specific boringssl version and that
+      # version does not yet include fixes for gcc11 build errors, they
+      # must be backported
+      (fetchGitilesPatch {
+        name = "fix-mismatch-between-header-and-implementation-of-bn_sqr_comba8.patch";
+        url = "https://boringssl.googlesource.com/boringssl/+/139adff9b27eaf0bdaac664ec4c9a7db2fe3f920";
+        sha256 = "05sp602dvh50v46jkzmh4sf4wqnq5bwy553596g2rhxg75bailjj";
+      })
+      (fetchGitilesPatch {
+        name = "use-an-unsized-helper-for-truncated-SHA-512-variants.patch";
+        url = "https://boringssl.googlesource.com/boringssl/+/a24ab549e6ae246b391155d7bed3790ac0e07de2";
+        sha256 = "0483jkpg4g64v23ln2blb74xnmzdjcn3r7w4zk7nfg8j3q5f9lxm";
+      })
+/*
+      # the following patch is too complex, so we will modify the build flags
+      # of crypto/fipsmodule/CMakeFiles/fipsmodule.dir/bcm.c.o in preBuild
+      # and turn off -Werror=stringop-overflow
+      (fetchGitilesPatch {
+        name = "make-md32_common.h-single-included-and-use-an-unsized-helper-for-SHA-256.patch";
+        url = "https://boringssl.googlesource.com/boringssl/+/597ffef971dd980b7de5e97a0c9b7ca26eec94bc";
+        sha256 = "1y0bkkdf1ccd6crx326agp01q22clm4ai4p982y7r6dkmxmh52qr";
+      })
+*/
+      (fetchGitilesPatch {
+        name = "fix-array-parameter-warnings.patch";
+        url = "https://boringssl.googlesource.com/boringssl/+/92c6fbfc4c44dc8462d260d836020d2b793e7804";
+        sha256 = "0h4sl95i8b0dj0na4ngf50wg54raxyjxl1zzwdc810abglp10vnv";
+      })
     ];
-  })).override {
-    buildGoModule = buildGoModuleGcc10;
-  };
+
+    preBuild = ''
+      ${preBuild}
+      sed -e '/^build crypto\/fipsmodule\/CMakeFiles\/fipsmodule\.dir\/bcm\.c\.o:/,/^ *FLAGS =/ s/^ *FLAGS = -Werror/& -Wno-error=stringop-overflow/' \
+          -i build.ninja
+    '';
+  });
 in
 stdenv.mkDerivation rec {
   pname = "lsquic";
diff --git a/pkgs/servers/invidious/shards.nix b/pkgs/servers/invidious/shards.nix
index 582a4083e7db3..e5f297d902c0d 100644
--- a/pkgs/servers/invidious/shards.nix
+++ b/pkgs/servers/invidious/shards.nix
@@ -20,14 +20,14 @@
   exception_page = {
     owner = "crystal-loot";
     repo = "exception_page";
-    rev = "v0.2.0";
-    sha256 = "0nlgnh5iykbr1v2132342k2mz6s2laws6nkgqsqlwhhcr4gb4jcx";
+    rev = "v0.2.2";
+    sha256 = "1c8askb9b7621jjz5pjj6b8pdbhw3r1l3dym6swg1saspf5j3jwi";
   };
   kemal = {
     owner = "kemalcr";
     repo = "kemal";
-    rev = "v1.1.0";
-    sha256 = "07vlvddy4mba9li2bvskzqzywwq55cyvlgkz13q6dsl4zfgc96ca";
+    rev = "v1.1.2";
+    sha256 = "1149q4qw0zrws5asqqr4snrdi67xsmisdcq58zcrbgqgsxgly9d0";
   };
   kilt = {
     owner = "jeromegn";
diff --git a/pkgs/servers/invidious/update.sh b/pkgs/servers/invidious/update.sh
index 580d6136388a9..bf43fbb4b3653 100755
--- a/pkgs/servers/invidious/update.sh
+++ b/pkgs/servers/invidious/update.sh
@@ -41,7 +41,7 @@ git -C "$git_dir" fetch origin "$git_branch"
 # because there might still be commits coming
 # use the day of the latest commit we picked as version
 new_rev=$(git -C "$git_dir" log -n 1 --format='format:%H' --before="${today}T00:00:00Z" "origin/$git_branch")
-new_version="unstable-$(git -C "$git_dir" log -n 1 --format='format:%cs' "$new_rev")"
+new_version="unstable-$(TZ=UTC git -C "$git_dir" log -n 1 --date='format-local:%Y-%m-%d' --format='%cd' "$new_rev")"
 info "latest commit before $today: $new_rev"
 
 if [ "$new_rev" = "$old_rev" ]; then
diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json
index cec068a09bf1f..40f8bb04182a8 100644
--- a/pkgs/servers/invidious/versions.json
+++ b/pkgs/servers/invidious/versions.json
@@ -4,15 +4,15 @@
     "sha256": "sha256-EU6T9yQCdOLx98Io8o01rEsgxDFF/Xoy42LgPopD2/A="
   },
   "invidious": {
-    "rev": "ed265cfdcd131b9df5398d899cc5d7036a5b7846",
-    "sha256": "0hhnq4s0slwbgxra7gxapl7dcz60a7k71cndi4crqcikmazzac3b",
-    "version": "unstable-2022-03-16"
+    "rev": "ca27e096f3249533cc7a9b123a8a8378f3312bb7",
+    "sha256": "0xjdzxnw6b5lk8pr82sjj60wfzxqkyamh0gpf2wxby52jvlbdcka",
+    "version": "unstable-2022-05-11"
   },
   "lsquic": {
     "sha256": "sha256-hG8cUvhbCNeMOsKkaJlgGpzUrIx47E/WhmPIdI5F3qM=",
     "version": "2.18.1"
   },
   "videojs": {
-    "sha256": "0b4vxd29kpvy60yhqm376r1872gds17s6wljqw0zlr16j762k50r"
+    "sha256": "0m09pc9acpzhfwwvc9dayl60nn28skmmglgvmlp48dlkqgfbgc27"
   }
 }
diff --git a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
index 505e9e4ebae90..c9aa674cbdc19 100644
--- a/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
+++ b/pkgs/servers/matrix-synapse/plugins/mjolnir-antispam.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-synapse-mjolnir-antispam";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "mjolnir";
-    rev = "v${version}";
-    sha256 = "sha256-zVb0lD5tYhX2a2MzNVQ8u7rMuQ8yGC/JlodbY4nsqNU=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-887azmXT5PGpcOqtWtKwdoyEtsXGm5DzpNRgEMlgSfM=";
   };
 
   sourceRoot = "./source/synapse_antispam";
diff --git a/pkgs/servers/monitoring/icinga2/default.nix b/pkgs/servers/monitoring/icinga2/default.nix
index a674aca2a37a7..643e505d794bf 100644
--- a/pkgs/servers/monitoring/icinga2/default.nix
+++ b/pkgs/servers/monitoring/icinga2/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "icinga2${nameSuffix}";
-  version = "2.13.2";
+  version = "2.13.3";
 
   src = fetchFromGitHub {
     owner = "icinga";
     repo = "icinga2";
     rev = "v${version}";
-    sha256 = "sha256:1ijvav2ymgq1i8jycrqbp2y4r54y0dkwjnwxc20bmcixxh877zdn";
+    sha256 = "sha256:1z8wzhlhl8vb7m8axvayfyqgf86lz67gaa02n3r17049vwswdgmb";
   };
 
   patches = [
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index dc65911a06652..6d7466afd8634 100644
--- a/pkgs/servers/plex/raw.nix
+++ b/pkgs/servers/plex/raw.nix
@@ -12,16 +12,16 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.26.0.5715-8cf78dab3";
+  version = "1.26.1.5798-99a4a6ac9";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = if stdenv.hostPlatform.system == "aarch64-linux" then fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_arm64.deb";
-    hash = "sha256-Ou5DlQPk+zAt/wE5Nry4nzLaR1Id6tQdwl73qawig4M=";
+    hash = "sha256-Y2LW7NNdwD4t/R7dHOAEG2mxC4qFV6Z8VUh0APo8QNM=";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    hash = "sha256-DQbRobiJwT7Xr4NzKS2iQOszOsd/bS/+kJ4p+QUVXfg=";
+    hash = "sha256-Chu4IULIvkmfMEV0LSg50i6usZJZI3UWOgCHQakbhaY=";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/pkgs/servers/radicale/3.x.nix b/pkgs/servers/radicale/3.x.nix
index 7171b4550fd1a..a8f5a29db8d61 100644
--- a/pkgs/servers/radicale/3.x.nix
+++ b/pkgs/servers/radicale/3.x.nix
@@ -20,6 +20,7 @@ python3.pkgs.buildPythonApplication rec {
     passlib
     vobject
     python-dateutil
+    pytz # https://github.com/Kozea/Radicale/issues/816
   ] ++ passlib.extras-require.bcrypt;
 
   checkInputs = with python3.pkgs; [
diff --git a/pkgs/tools/admin/stripe-cli/default.nix b/pkgs/tools/admin/stripe-cli/default.nix
index a02e34df631d4..2d294d7f88ee1 100644
--- a/pkgs/tools/admin/stripe-cli/default.nix
+++ b/pkgs/tools/admin/stripe-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "stripe-cli";
-  version = "1.8.8";
+  version = "1.8.11";
 
   src = fetchFromGitHub {
     owner = "stripe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-frVQ2nqOflY26ZZWVYJGMNMOdbLuIojQDu/79kLilBk=";
+    sha256 = "sha256-4a5GPB6R3jTzcZRMrYwDn6oNEHBdKQJUFQb+k76X5Z4=";
   };
   vendorSha256 = "sha256-1c+YtfRy1ey0z117YHHkrCnpb7g+DmM+LR1rjn1YwMQ=";
 
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 0f7d3806182a5..4a74b851b3446 100644
--- a/pkgs/tools/admin/syft/default.nix
+++ b/pkgs/tools/admin/syft/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "0.45.1";
+  version = "0.46.1";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-oexsu52x9rAqwTVxTVHzKPuaIfvg5lvvuBmKcnb2Yew=";
+    sha256 = "sha256-ojjudnS0yJZ6YoHmq4m0YKyCqq9Ge+AFU7ejlPop71w=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -20,11 +20,11 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-d6ZBWX4/lgh610fBLTE1EUqZmpctLfxi2PSRifH+1jg=";
+  vendorSha256 = "sha256-nb7QcdmwAfYDTzCFNjs7uKwK/gng2iMD36ANaFSsftk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
-  subPackages = [ "." ];
+  subPackages = [ "cmd/syft" ];
 
   ldflags = [
     "-s"
@@ -52,6 +52,17 @@ buildGoModule rec {
       --zsh <($out/bin/syft completion zsh)
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    export SYFT_CHECK_FOR_APP_UPDATE=false
+    $out/bin/syft --help
+    $out/bin/syft version | grep "${version}"
+
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     homepage = "https://github.com/anchore/syft";
     changelog = "https://github.com/anchore/syft/releases/tag/v${version}";
diff --git a/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch b/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch
deleted file mode 100644
index 6956183344c47..0000000000000
--- a/pkgs/tools/audio/beets/badfiles-plugin-nix-paths.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git i/beetsplug/badfiles.py w/beetsplug/badfiles.py
-index 36b45de3..5208b696 100644
---- i/beetsplug/badfiles.py
-+++ w/beetsplug/badfiles.py
-@@ -71,14 +71,14 @@ class BadFiles(BeetsPlugin):
-         return status, errors, [line for line in output.split("\n") if line]
- 
-     def check_mp3val(self, path):
--        status, errors, output = self.run_command(["mp3val", path])
-+        status, errors, output = self.run_command(["@mp3val@/bin/mp3val", path])
-         if status == 0:
-             output = [line for line in output if line.startswith("WARNING:")]
-             errors = len(output)
-         return status, errors, output
- 
-     def check_flac(self, path):
--        return self.run_command(["flac", "-wst", path])
-+        return self.run_command(["@flac@/bin/flac", "-wst", path])
- 
-     def check_custom(self, command):
-         def checker(path):
diff --git a/pkgs/tools/audio/beets/builtin-plugins.nix b/pkgs/tools/audio/beets/builtin-plugins.nix
new file mode 100644
index 0000000000000..1fef39ef72f53
--- /dev/null
+++ b/pkgs/tools/audio/beets/builtin-plugins.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, aacgain
+, essentia-extractor
+, ffmpeg
+, flac
+, imagemagick
+, keyfinder-cli
+, lib
+, mp3gain
+, mp3val
+, python3Packages
+, ...
+}: {
+  absubmit = {
+    enable = lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms;
+    wrapperBins = [ essentia-extractor ];
+  };
+  acousticbrainz.propagatedBuildInputs = [ python3Packages.requests ];
+  albumtypes = { };
+  aura.propagatedBuildInputs = with python3Packages; [ flask pillow ];
+  badfiles.wrapperBins = [ mp3val flac ];
+  bareasc = { };
+  beatport.propagatedBuildInputs = [ python3Packages.requests-oauthlib ];
+  bench = { };
+  bpd = { };
+  bpm = { };
+  bpsync = { };
+  bucket = { };
+  chroma.propagatedBuildInputs = [ python3Packages.pyacoustid ];
+  convert.wrapperBins = [ ffmpeg ];
+  deezer.propagatedBuildInputs = [ python3Packages.requests ];
+  discogs.propagatedBuildInputs = with python3Packages; [ discogs-client requests ];
+  duplicates = { };
+  edit = { };
+  embedart = {
+    propagatedBuildInputs = with python3Packages; [ pillow ];
+    wrapperBins = [ imagemagick ];
+  };
+  embyupdate.propagatedBuildInputs = [ python3Packages.requests ];
+  export = { };
+  fetchart = {
+    propagatedBuildInputs = with python3Packages; [ requests pillow ];
+    wrapperBins = [ imagemagick ];
+  };
+  filefilter = { };
+  fish = { };
+  freedesktop = { };
+  fromfilename = { };
+  ftintitle = { };
+  fuzzy = { };
+  gmusic = { };
+  hook = { };
+  ihate = { };
+  importadded = { };
+  importfeeds = { };
+  info = { };
+  inline = { };
+  ipfs = { };
+  keyfinder.wrapperBins = [ keyfinder-cli ];
+  kodiupdate.propagatedBuildInputs = [ python3Packages.requests ];
+  lastgenre.propagatedBuildInputs = [ python3Packages.pylast ];
+  lastimport.propagatedBuildInputs = [ python3Packages.pylast ];
+  loadext.propagatedBuildInputs = [ python3Packages.requests ];
+  lyrics.propagatedBuildInputs = [ python3Packages.beautifulsoup4 ];
+  mbcollection = { };
+  mbsubmit = { };
+  mbsync = { };
+  metasync = { };
+  missing = { };
+  mpdstats.propagatedBuildInputs = [ python3Packages.mpd2 ];
+  mpdupdate.propagatedBuildInputs = [ python3Packages.mpd2 ];
+  parentwork = { };
+  permissions = { };
+  play = { };
+  playlist.propagatedBuildInputs = [ python3Packages.requests ];
+  plexupdate = { };
+  random = { };
+  replaygain.wrapperBins = [ aacgain ffmpeg mp3gain ];
+  rewrite = { };
+  scrub = { };
+  smartplaylist = { };
+  sonosupdate.propagatedBuildInputs = [ python3Packages.soco ];
+  spotify = { };
+  subsonicplaylist.propagatedBuildInputs = [ python3Packages.requests ];
+  subsonicupdate.propagatedBuildInputs = [ python3Packages.requests ];
+  the = { };
+  thumbnails = {
+    propagatedBuildInputs = with python3Packages; [ pillow pyxdg ];
+    wrapperBins = [ imagemagick ];
+  };
+  types.testPaths = [ "test/test_types_plugin.py" ];
+  unimported = { };
+  web.propagatedBuildInputs = [ python3Packages.flask ];
+  zero = { };
+}
diff --git a/pkgs/tools/audio/beets/common.nix b/pkgs/tools/audio/beets/common.nix
new file mode 100644
index 0000000000000..3c7ad800c3b7e
--- /dev/null
+++ b/pkgs/tools/audio/beets/common.nix
@@ -0,0 +1,147 @@
+{ stdenv
+, bashInteractive
+, diffPlugins
+, glibcLocales
+, gobject-introspection
+, gst_all_1
+, lib
+, python3Packages
+, runtimeShell
+, writeScript
+
+  # plugin deps
+, aacgain
+, essentia-extractor
+, ffmpeg
+, flac
+, imagemagick
+, keyfinder-cli
+, mp3gain
+, mp3val
+
+, src
+, version
+, pluginOverrides ? { }
+, disableAllPlugins ? false
+}@inputs:
+let
+  inherit (lib) attrNames attrValues concatMap;
+
+  builtinPlugins = import ./builtin-plugins.nix inputs;
+
+  mkPlugin = { enable ? !disableAllPlugins, propagatedBuildInputs ? [ ], testPaths ? [ ], wrapperBins ? [ ] }: {
+    inherit enable propagatedBuildInputs testPaths wrapperBins;
+  };
+
+  allPlugins = lib.mapAttrs (_: mkPlugin) (lib.recursiveUpdate builtinPlugins pluginOverrides);
+  enabledPlugins = lib.filterAttrs (_: p: p.enable) allPlugins;
+  disabledPlugins = lib.filterAttrs (_: p: !p.enable) allPlugins;
+
+  pluginWrapperBins = concatMap (p: p.wrapperBins) (attrValues enabledPlugins);
+in
+python3Packages.buildPythonApplication rec {
+  pname = "beets";
+  inherit src version;
+
+  patches = [
+    # Bash completion fix for Nix
+    ./patches/bash-completion-always-print.patch
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    confuse
+    gobject-introspection
+    gst-python
+    jellyfish
+    mediafile
+    munkres
+    musicbrainzngs
+    mutagen
+    pygobject3
+    pyyaml
+    reflink
+    unidecode
+  ] ++ (concatMap (p: p.propagatedBuildInputs) (attrValues enabledPlugins));
+
+  buildInputs = [
+  ] ++ (with gst_all_1; [
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+  ]);
+
+  postInstall = ''
+    mkdir -p $out/share/zsh/site-functions
+    cp extra/_beet $out/share/zsh/site-functions/
+  '';
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    tmphome="$(mktemp -d)"
+
+    EDITOR="${writeScript "beetconfig.sh" ''
+      #!${runtimeShell}
+      cat > "$1" <<CFG
+      plugins: ${lib.concatStringsSep " " (attrNames enabledPlugins)}
+      CFG
+    ''}" HOME="$tmphome" "$out/bin/beet" config -e
+    EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
+
+    runHook postInstallCheck
+  '';
+
+  makeWrapperArgs = [
+    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
+    "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
+    "--prefix PATH : ${lib.makeBinPath pluginWrapperBins}"
+  ];
+
+  checkInputs = with python3Packages; [
+    pytest
+    mock
+    rarfile
+    responses
+  ] ++ pluginWrapperBins;
+
+  disabledTestPaths = lib.flatten (attrValues (lib.mapAttrs (n: v: v.testPaths ++ [ "test/test_${n}.py" ]) disabledPlugins));
+
+  checkPhase = ''
+    runHook preCheck
+
+    # Check for undefined plugins
+    find beetsplug -mindepth 1 \
+      \! -path 'beetsplug/__init__.py' -a \
+      \( -name '*.py' -o -path 'beetsplug/*/__init__.py' \) -print \
+      | sed -n -re 's|^beetsplug/([^/.]+).*|\1|p' \
+      | sort -u > plugins_available
+    ${diffPlugins (attrNames allPlugins) "plugins_available"}
+
+    export BEETS_TEST_SHELL="${bashInteractive}/bin/bash --norc"
+    export HOME="$(mktemp -d)"
+
+    args=" -m pytest -r fEs"
+    eval "disabledTestPaths=($disabledTestPaths)"
+    for path in ''${disabledTestPaths[@]}; do
+      if [ -e "$path" ]; then
+        args+=" --ignore \"$path\""
+      else
+        echo "Skipping non-existent test path '$path'"
+      fi
+    done
+
+    python $args
+
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Music tagger and library organizer";
+    homepage = "https://beets.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ aszlig doronbehar lovesegfault pjones ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch b/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
deleted file mode 100644
index 1bc1789344864..0000000000000
--- a/pkgs/tools/audio/beets/convert-plugin-ffmpeg-path.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git i/beetsplug/convert.py w/beetsplug/convert.py
-index 6bc07c28..039fb452 100644
---- i/beetsplug/convert.py
-+++ w/beetsplug/convert.py
-@@ -118,22 +118,22 @@ class ConvertPlugin(BeetsPlugin):
-             'id3v23': 'inherit',
-             'formats': {
-                 'aac': {
--                    'command': 'ffmpeg -i $source -y -vn -acodec aac '
-+                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec aac '
-                     '-aq 1 $dest',
-                     'extension': 'm4a',
-                 },
-                 'alac': {
--                    'command': 'ffmpeg -i $source -y -vn -acodec alac $dest',
-+                    'command': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec alac $dest',
-                     'extension': 'm4a',
-                 },
--                'flac': 'ffmpeg -i $source -y -vn -acodec flac $dest',
--                'mp3': 'ffmpeg -i $source -y -vn -aq 2 $dest',
-+                'flac': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec flac $dest',
-+                'mp3': '@ffmpeg@/bin/ffmpeg -i $source -y -vn -aq 2 $dest',
-                 'opus':
--                    'ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-+                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libopus -ab 96k $dest',
-                 'ogg':
--                    'ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-+                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec libvorbis -aq 3 $dest',
-                 'wma':
--                    'ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
-+                    '@ffmpeg@/bin/ffmpeg -i $source -y -vn -acodec wmav2 -vn $dest',
-             },
-             'max_bitrate': 500,
-             'auto': False,
diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix
index 0bdbe9d345db8..a66b018678c60 100644
--- a/pkgs/tools/audio/beets/default.nix
+++ b/pkgs/tools/audio/beets/default.nix
@@ -1,279 +1,50 @@
-{ stdenv
-, lib
+{ lib
+, callPackage
 , fetchFromGitHub
-, writeScript
-, glibcLocales
-, diffPlugins
-, substituteAll
-, pythonPackages
-# can be null, if you wish to disable a reference to it. It's needed for the
-# artresizer, see:
-# https://beets.readthedocs.io/en/v1.6.0/plugins/fetchart.html#image-resizing
-, imagemagick
-, gobject-introspection
-, gst_all_1
-, runtimeShell
-
-# external plugins package set
-, beetsExternalPlugins
-
-, enableAbsubmit         ? lib.elem stdenv.hostPlatform.system essentia-extractor.meta.platforms, essentia-extractor
-, enableAcousticbrainz   ? true
-, enableAcoustid         ? true
-, enableAura             ? true
-, enableBadfiles         ? true, flac, mp3val
-, enableBeatport         ? true
-, enableBpsync           ? true
-, enableConvert          ? true, ffmpeg
-, enableDeezer           ? true
-, enableDiscogs          ? true
-, enableEmbyupdate       ? true
-, enableFetchart         ? true
-, enableKeyfinder        ? true, keyfinder-cli
-, enableKodiupdate       ? true
-, enableLastfm           ? true
-, enableLoadext          ? true
-, enableLyrics           ? true
-, enableMpd              ? true
-, enablePlaylist         ? true
-, enableReplaygain       ? true
-, enableSonosUpdate      ? true
-, enableSubsonicplaylist ? true
-, enableSubsonicupdate   ? true
-, enableThumbnails       ? true
-, enableWeb              ? true
-
-# External plugins
-, enableAlternatives     ? false
-, enableCopyArtifacts    ? false
-, enableExtraFiles       ? false
-
-, bashInteractive, bash-completion
 }:
-
-assert enableBpsync      -> enableBeatport;
-
-let
-  optionalPlugins = {
-    absubmit = enableAbsubmit;
-    acousticbrainz = enableAcousticbrainz;
-    aura = enableAura;
-    badfiles = enableBadfiles;
-    beatport = enableBeatport;
-    bpsync = enableBpsync;
-    chroma = enableAcoustid;
-    convert = enableConvert;
-    deezer = enableDeezer;
-    discogs = enableDiscogs;
-    embyupdate = enableEmbyupdate;
-    fetchart = enableFetchart;
-    keyfinder = enableKeyfinder;
-    kodiupdate = enableKodiupdate;
-    lastgenre = enableLastfm;
-    lastimport = enableLastfm;
-    loadext = enableLoadext;
-    lyrics = enableLyrics;
-    mpdstats = enableMpd;
-    mpdupdate = enableMpd;
-    playlist = enablePlaylist;
-    replaygain = enableReplaygain;
-    sonosupdate = enableSonosUpdate;
-    subsonicplaylist = enableSubsonicplaylist;
-    subsonicupdate = enableSubsonicupdate;
-    thumbnails = enableThumbnails;
-    web = enableWeb;
+/*
+** To customize the enabled beets plugins, use the pluginOverrides input to the
+** derivation.
+** Examples:
+**
+** Disabling a builtin plugin:
+** beets.override { pluginOverrides = { beatport.enable = false; }; }
+**
+** Enabling an external plugin:
+** beets.override { pluginOverrides = {
+**   alternatives = { enable = true; propagatedBuildInputs = [ beetsPackages.alternatives ]; };
+** }; }
+*/
+lib.makeExtensible (self: {
+  beets = self.beets-stable;
+
+  beets-stable = callPackage ./common.nix rec {
+    version = "1.6.0";
+    src = fetchFromGitHub {
+      owner = "beetbox";
+      repo = "beets";
+      rev = "v${version}";
+      hash = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
+    };
   };
 
-  pluginsWithoutDeps = [
-    "albumtypes" "bareasc" "bench" "bpd" "bpm" "bucket" "duplicates" "edit" "embedart"
-    "export" "filefilter" "fish" "freedesktop" "fromfilename" "ftintitle" "fuzzy"
-    "hook" "ihate" "importadded" "importfeeds" "info" "inline" "ipfs" "gmusic"
-    "mbcollection" "mbsubmit" "mbsync" "metasync" "missing" "parentwork" "permissions" "play"
-    "plexupdate" "random" "rewrite" "scrub" "smartplaylist" "spotify" "the"
-    "types" "unimported" "zero"
-  ];
-
-  enabledOptionalPlugins = lib.attrNames (lib.filterAttrs (_: lib.id) optionalPlugins);
-
-  allPlugins = pluginsWithoutDeps ++ lib.attrNames optionalPlugins;
-  allEnabledPlugins = pluginsWithoutDeps ++ enabledOptionalPlugins;
-
-  testShell = "${bashInteractive}/bin/bash --norc";
-  completion = "${bash-completion}/share/bash-completion/bash_completion";
-
-in pythonPackages.buildPythonApplication rec {
-  pname = "beets";
-  version = "1.6.0";
-
-  src = fetchFromGitHub {
-    owner = "beetbox";
-    repo = "beets";
-    rev = "v${version}";
-    sha256 = "sha256-fT+rCJJQR7bdfAcmeFRaknmh4ZOP4RCx8MXpq7/D8tM=";
+  beets-minimal = self.beets.override { disableAllPlugins = true; };
+
+  beets-unstable = callPackage ./common.nix {
+    version = "unstable-2022-05-08";
+    src = fetchFromGitHub {
+      owner = "beetbox";
+      repo = "beets";
+      rev = "e06cf7969bfdfa4773049699320471be45d56054";
+      hash = "sha256-yWwxYSzSSmx2UfCn0EBH23hQGZKSRn/c8ryvxLUeHdM=";
+    };
+    pluginOverrides = {
+      # unstable has a new plugin, so we register it here.
+      limit = { };
+    };
   };
 
-  propagatedBuildInputs = [
-    pythonPackages.six
-    pythonPackages.enum34
-    pythonPackages.jellyfish
-    pythonPackages.munkres
-    pythonPackages.musicbrainzngs
-    pythonPackages.mutagen
-    pythonPackages.pyyaml
-    pythonPackages.unidecode
-    pythonPackages.gst-python
-    pythonPackages.pygobject3
-    pythonPackages.reflink
-    pythonPackages.confuse
-    pythonPackages.mediafile
-    gobject-introspection
-  ] ++ lib.optional enableAbsubmit         essentia-extractor
-    ++ lib.optional enableAcoustid         pythonPackages.pyacoustid
-    ++ lib.optional enableBeatport         pythonPackages.requests-oauthlib
-    ++ lib.optional enableConvert          ffmpeg
-    ++ lib.optional enableDiscogs          pythonPackages.discogs-client
-    ++ lib.optional (enableFetchart
-                  || enableDeezer
-                  || enableEmbyupdate
-                  || enableKodiupdate
-                  || enableLoadext
-                  || enablePlaylist
-                  || enableSubsonicplaylist
-                  || enableSubsonicupdate
-                  || enableAcousticbrainz) pythonPackages.requests
-    ++ lib.optional enableKeyfinder        keyfinder-cli
-    ++ lib.optional enableLastfm           pythonPackages.pylast
-    ++ lib.optional enableLyrics           pythonPackages.beautifulsoup4
-    ++ lib.optional enableMpd              pythonPackages.mpd2
-    ++ lib.optional enableSonosUpdate      pythonPackages.soco
-    ++ lib.optional enableThumbnails       pythonPackages.pyxdg
-    ++ lib.optional (enableAura
-                  || enableWeb)            pythonPackages.flask
-    ++ lib.optional enableAlternatives     beetsExternalPlugins.alternatives
-    ++ lib.optional enableCopyArtifacts    beetsExternalPlugins.copyartifacts
-    ++ lib.optional enableExtraFiles       beetsExternalPlugins.extrafiles
-  ;
-
-  buildInputs = [
-  ] ++ (with gst_all_1; [
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-ugly
-  ]);
-
-  checkInputs = with pythonPackages; [
-    beautifulsoup4
-    mock
-    nose
-    rarfile
-    responses
-    # Although considered as plugin dependencies, they are needed for the
-    # tests, for disabling them via an override makes the build fail. see:
-    # https://github.com/beetbox/beets/blob/v1.6.0/setup.py
-    pylast
-    mpd2
-    discogs-client
-    pyxdg
-  ];
-
-  patches = [
-    # Bash completion fix for Nix
-    ./bash-completion-always-print.patch
-  ]
-    # Fix path to imagemagick, used for the artresizer.py file. This reference
-    # to imagemagick might be expensive for some people, so the patch can be
-    # disabled if imagemagick is set to null
-    ++ lib.optional (imagemagick != null) (substituteAll {
-      src = ./imagemagick-nix-path.patch;
-      inherit imagemagick;
-    })
-    # We need to force ffmpeg as the default, since we do not package
-    # bs1770gain, and set the absolute path there, to avoid impurities.
-    ++ lib.optional enableReplaygain (substituteAll {
-      src = ./replaygain-default-ffmpeg.patch;
-      ffmpeg = lib.getBin ffmpeg;
-    })
-    # Put absolute Nix paths in place
-    ++ lib.optional enableConvert (substituteAll {
-      src = ./convert-plugin-ffmpeg-path.patch;
-      ffmpeg = lib.getBin ffmpeg;
-    })
-    ++ lib.optional enableBadfiles (substituteAll {
-      src = ./badfiles-plugin-nix-paths.patch;
-      inherit mp3val flac;
-    })
-  ;
-
-  # Disable failing tests
-  postPatch = ''
-    echo echo completion tests passed > test/rsrc/test_completion.sh
-
-    # https://github.com/beetbox/beets/issues/1187
-    sed -i -e 's/len(mf.images)/0/' test/test_zero.py
-  '';
-
-  postInstall = ''
-    mkdir -p $out/share/zsh/site-functions
-    cp extra/_beet $out/share/zsh/site-functions/
-  '';
-
-  doCheck = true;
-
-  preCheck = ''
-    find beetsplug -mindepth 1 \
-      \! -path 'beetsplug/__init__.py' -a \
-      \( -name '*.py' -o -path 'beetsplug/*/__init__.py' \) -print \
-      | sed -n -re 's|^beetsplug/([^/.]+).*|\1|p' \
-      | sort -u > plugins_available
-
-     ${diffPlugins allPlugins "plugins_available"}
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    LANG=en_US.UTF-8 \
-    LOCALE_ARCHIVE=${assert stdenv.isLinux; glibcLocales}/lib/locale/locale-archive \
-    BEETS_TEST_SHELL="${testShell}" \
-    BASH_COMPLETION_SCRIPT="${completion}" \
-    HOME="$(mktemp -d)" nosetests -v
-
-    runHook postCheck
-  '';
-
-  doInstallCheck = true;
-
-  installCheckPhase = ''
-    runHook preInstallCheck
-
-    tmphome="$(mktemp -d)"
-
-    EDITOR="${writeScript "beetconfig.sh" ''
-      #!${runtimeShell}
-      cat > "$1" <<CFG
-      plugins: ${lib.concatStringsSep " " allEnabledPlugins}
-      CFG
-    ''}" HOME="$tmphome" "$out/bin/beet" config -e
-    EDITOR=true HOME="$tmphome" "$out/bin/beet" config -e
-
-    runHook postInstallCheck
-  '';
-
-  makeWrapperArgs = [
-    "--set GI_TYPELIB_PATH \"$GI_TYPELIB_PATH\""
-    "--set GST_PLUGIN_SYSTEM_PATH_1_0 \"$GST_PLUGIN_SYSTEM_PATH_1_0\""
-  ];
-
-  passthru = {
-    # FIXME: remove in favor of pkgs.beetsExternalPlugins
-    externalPlugins = beetsExternalPlugins;
-  };
-
-  meta = with lib; {
-    description = "Music tagger and library organizer";
-    homepage = "https://beets.io";
-    license = licenses.mit;
-    maintainers = with maintainers; [ aszlig doronbehar lovesegfault pjones ];
-    platforms = platforms.linux;
-  };
-}
+  alternatives = callPackage ./plugins/alternatives.nix { beets = self.beets-minimal; };
+  copyartifacts = callPackage ./plugins/copyartifacts.nix { beets = self.beets-minimal; };
+  extrafiles = callPackage ./plugins/extrafiles.nix { beets = self.beets-minimal; };
+})
diff --git a/pkgs/tools/audio/beets/imagemagick-nix-path.patch b/pkgs/tools/audio/beets/imagemagick-nix-path.patch
deleted file mode 100644
index 9a77703ede7c6..0000000000000
--- a/pkgs/tools/audio/beets/imagemagick-nix-path.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git i/beets/util/artresizer.py w/beets/util/artresizer.py
-index 8683e228..2f38b4d6 100644
---- i/beets/util/artresizer.py
-+++ w/beets/util/artresizer.py
-@@ -334,13 +334,8 @@ class ArtResizer(metaclass=Shareable):
-         # not, fall back to the older, separate convert and identify
-         # commands.
-         if self.method[0] == IMAGEMAGICK:
--            self.im_legacy = self.method[2]
--            if self.im_legacy:
--                self.im_convert_cmd = ['convert']
--                self.im_identify_cmd = ['identify']
--            else:
--                self.im_convert_cmd = ['magick']
--                self.im_identify_cmd = ['magick', 'identify']
-+            self.im_convert_cmd = ['@imagemagick@/bin/magick']
-+            self.im_identify_cmd = ['@imagemagick@/bin/magick', 'identify']
- 
-     def resize(
-         self, maxwidth, path_in, path_out=None, quality=0, max_filesize=0
diff --git a/pkgs/tools/audio/beets/bash-completion-always-print.patch b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch
index 8a31fe22f7281..8a31fe22f7281 100644
--- a/pkgs/tools/audio/beets/bash-completion-always-print.patch
+++ b/pkgs/tools/audio/beets/patches/bash-completion-always-print.patch
diff --git a/pkgs/tools/audio/beets/plugins/alternatives.nix b/pkgs/tools/audio/beets/plugins/alternatives.nix
index 146e9f5066414..635854d4576a0 100644
--- a/pkgs/tools/audio/beets/plugins/alternatives.nix
+++ b/pkgs/tools/audio/beets/plugins/alternatives.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, beets, pythonPackages }:
+{ lib, fetchFromGitHub, beets, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "beets-alternatives";
   version = "unstable-2021-02-01";
 
@@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication rec {
 
   nativeBuildInputs = [ beets ];
 
-  checkInputs = with pythonPackages; [
+  checkInputs = with python3Packages; [
     pytestCheckHook
     mock
   ];
diff --git a/pkgs/tools/audio/beets/plugins/copyartifacts.nix b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
index 2f1ecdfc36950..623ca2fcf1725 100644
--- a/pkgs/tools/audio/beets/plugins/copyartifacts.nix
+++ b/pkgs/tools/audio/beets/plugins/copyartifacts.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, beets, pythonPackages, glibcLocales }:
+{ lib, fetchFromGitHub, beets, python3Packages }:
 
-pythonPackages.buildPythonApplication {
+python3Packages.buildPythonApplication {
   pname = "beets-copyartifacts";
   version = "unstable-2020-02-15";
 
@@ -15,20 +15,20 @@ pythonPackages.buildPythonApplication {
     sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py
     sed -i -e '/namespace_packages/d' setup.py
     printf 'from pkgutil import extend_path\n__path__ = extend_path(__path__, __name__)\n' >beetsplug/__init__.py
-
-    # Skip test which is already failing upstream.
-    sed -i -e '1i import unittest' \
-           -e 's/\(^ *\)# failing/\1@unittest.skip/' \
-           tests/test_reimport.py
   '';
 
-  nativeBuildInputs = [ beets pythonPackages.nose glibcLocales ];
+  pytestFlagsArray = [ "-r fEs" ];
 
-  checkPhase = "LANG=en_US.UTF-8 nosetests";
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+    beets
+    six
+  ];
 
   meta = {
     description = "Beets plugin to move non-music files during the import process";
     homepage = "https://github.com/sbarakat/beets-copyartifacts";
     license = lib.licenses.mit;
+    inherit (beets.meta) platforms;
   };
 }
diff --git a/pkgs/tools/audio/beets/plugins/extrafiles.nix b/pkgs/tools/audio/beets/plugins/extrafiles.nix
index 0d3ccc0d7a712..7cd4c76d5045a 100644
--- a/pkgs/tools/audio/beets/plugins/extrafiles.nix
+++ b/pkgs/tools/audio/beets/plugins/extrafiles.nix
@@ -1,6 +1,6 @@
-{ lib, fetchFromGitHub, beets, pythonPackages }:
+{ lib, fetchFromGitHub, beets, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication {
   pname = "beets-extrafiles";
   version = "unstable-2020-12-13";
 
@@ -17,17 +17,21 @@ pythonPackages.buildPythonApplication rec {
     sed -i -e 's/mediafile~=0.6.0/mediafile>=0.6.0/' setup.py
   '';
 
-  nativeBuildInputs = [ beets ];
+  propagatedBuildInputs = with python3Packages; [ mediafile ];
 
-  propagatedBuildInputs = with pythonPackages; [ mediafile ];
+  checkInputs = [
+    python3Packages.pytestCheckHook
+    beets
+  ];
 
   preCheck = ''
-    HOME=$TEMPDIR
+    HOME="$(mktemp -d)"
   '';
 
   meta = {
     homepage = "https://github.com/Holzhaus/beets-extrafiles";
     description = "A plugin for beets that copies additional files and directories during the import process";
     license = lib.licenses.mit;
+    inherit (beets.meta) platforms;
   };
 }
diff --git a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch b/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
deleted file mode 100644
index e441997cae583..0000000000000
--- a/pkgs/tools/audio/beets/replaygain-default-ffmpeg.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git i/beetsplug/replaygain.py w/beetsplug/replaygain.py
-index b6297d93..5c1cbbc0 100644
---- i/beetsplug/replaygain.py
-+++ w/beetsplug/replaygain.py
-@@ -139,7 +139,7 @@ class FfmpegBackend(Backend):
- 
-     def __init__(self, config, log):
-         super().__init__(config, log)
--        self._ffmpeg_path = "ffmpeg"
-+        self._ffmpeg_path = "@ffmpeg@/bin/ffmpeg"
- 
-         # check that ffmpeg is installed
-         try:
-@@ -975,11 +975,10 @@ class ReplayGainPlugin(BeetsPlugin):
-     def __init__(self):
-         super().__init__()
- 
--        # default backend is 'command' for backward-compatibility.
-         self.config.add({
-             'overwrite': False,
-             'auto': True,
--            'backend': 'command',
-+            'backend': 'ffmpeg',
-             'threads': cpu_count(),
-             'parallel_on_import': False,
-             'per_disc': False,
diff --git a/pkgs/tools/audio/mpris-scrobbler/default.nix b/pkgs/tools/audio/mpris-scrobbler/default.nix
index f2e23fd2f57d7..16070c91dd90f 100644
--- a/pkgs/tools/audio/mpris-scrobbler/default.nix
+++ b/pkgs/tools/audio/mpris-scrobbler/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mpris-scrobbler";
-  version = "0.4.90";
+  version = "0.4.95";
 
   src = fetchFromGitHub {
     owner  = "mariusor";
     repo   = "mpris-scrobbler";
     rev    = "v${version}";
-    sha256 = "sha256-+Y5d7yFOnSk2gQS/m/01ofbNeDCLXb+cTTlHj4bgO0M=";
+    sha256 = "sha256-Cqf0egS4XSDiKLdizNHPdS0Zt3jQxw9e78S7n23CuKI=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/filesystems/httm/default.nix b/pkgs/tools/filesystems/httm/default.nix
index 5c0bc74245f62..776312c89027d 100644
--- a/pkgs/tools/filesystems/httm/default.nix
+++ b/pkgs/tools/filesystems/httm/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httm";
-  version = "0.9.0";
+  version = "0.10.9";
 
   src = fetchFromGitHub {
     owner = "kimono-koans";
     repo = pname;
     rev = version;
-    sha256 = "sha256-uqzwS7+OQsPdMv3+fWdn3yVFJwtFZNd8kVWw//mQZj8=";
+    sha256 = "L8yqf+QadN+uZxBjT3RWG7L3QqIerNrNc1u9PP1pt1I=";
   };
 
-  cargoSha256 = "sha256-EC3E5NawsDe+CU5WEu0G3FWVLuqW5nXOoUURN0iDPK0=";
+  cargoSha256 = "UxqgJBgKD7hGT0UjAVYqb+sjbZ1sYVVOQSDvRQROOso=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/filesystems/hubicfuse/default.nix b/pkgs/tools/filesystems/hubicfuse/default.nix
index 0ebc1f232234d..95dabe2f97b62 100644
--- a/pkgs/tools/filesystems/hubicfuse/default.nix
+++ b/pkgs/tools/filesystems/hubicfuse/default.nix
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/TurboGit/hubicfuse/commit/b460f40d86bc281a21379158a7534dfb9f283786.patch";
       sha256 = "0nqvcbrgbc5dms8fkz3brlj40yn48p36drabrnc26gvb3hydh5dl";
     })
+    # UPstream fix for build failure on -fno-common toolchains
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/TurboGit/hubicfuse/commit/34a6c3e57467b5f7e9befe2171bf4292893c5a18.patch";
+      sha256 = "0k1jz2h8sdhmi0srx0adbyrcrm57j4annj84yw6hdrly5hsf7bzc";
+    })
   ];
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/development/python-modules/addic7ed-cli/default.nix b/pkgs/tools/misc/addic7ed-cli/default.nix
index 3ee3a897a906a..3ee3a897a906a 100644
--- a/pkgs/development/python-modules/addic7ed-cli/default.nix
+++ b/pkgs/tools/misc/addic7ed-cli/default.nix
diff --git a/pkgs/tools/misc/fontforge/default.nix b/pkgs/tools/misc/fontforge/default.nix
index 3de016bf6d688..aa3d16a5fa566 100644
--- a/pkgs/tools/misc/fontforge/default.nix
+++ b/pkgs/tools/misc/fontforge/default.nix
@@ -63,7 +63,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional (!withGTK) "-DENABLE_X11=ON"
     ++ lib.optional withExtras "-DENABLE_FONTFORGE_EXTRAS=ON";
 
-  # work-around: git isn't really used, but configuration fails without it
   preConfigure = ''
     # The way $version propagates to $version of .pe-scripts (https://github.com/dejavu-fonts/dejavu-fonts/blob/358190f/scripts/generate.pe#L19)
     export SOURCE_DATE_EPOCH=$(date -d ${version} +%s)
diff --git a/pkgs/tools/misc/opentelemetry-collector/contrib.nix b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
index e158f1c3f44a7..720486100215a 100644
--- a/pkgs/tools/misc/opentelemetry-collector/contrib.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/contrib.nix
@@ -6,17 +6,17 @@
 
 buildGoModule rec {
   pname = "opentelemetry-collector-contrib";
-  version = "0.47.0";
+  version = "0.51.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector-contrib";
     rev = "v${version}";
-    sha256 = "sha256-IbpQd01uU6/Ihli+gVDjTB8T8cj//XHoZYcDjXD635Q=";
+    sha256 = "sha256-lMTOJFGuJhdXOvCk70Bee97Vb0HBCDnOLeK2q7S4hW8=";
   };
   # proxy vendor to avoid hash missmatches between linux and macOS
   proxyVendor = true;
-  vendorSha256 = "sha256-1svBCXfutjXfXfVqVHUTAt9T1ON/qbiS+VCt5kP/YIc=";
+  vendorSha256 = "sha256-CzFcSvJCMfS83Semk92XUd9iSX6OjOrDzRUNNLVtpi4=";
 
   subPackages = [ "cmd/otelcontribcol" ];
 
diff --git a/pkgs/tools/misc/opentelemetry-collector/default.nix b/pkgs/tools/misc/opentelemetry-collector/default.nix
index 1feb290bb1374..35ae2ca3f142c 100644
--- a/pkgs/tools/misc/opentelemetry-collector/default.nix
+++ b/pkgs/tools/misc/opentelemetry-collector/default.nix
@@ -12,17 +12,17 @@ let
 in
 buildGoModule rec {
   pname = "opentelemetry-collector";
-  version = "0.47.0";
+  version = "0.51.0";
 
   src = fetchFromGitHub {
     owner = "open-telemetry";
     repo = "opentelemetry-collector";
     rev = "v${version}";
-    sha256 = "sha256-1dMdQWV+gxbMc/2iVsB1LCsYxR0bt5AJEvoFq2/KHCg=";
+    sha256 = "sha256-XCOyvFWvgGxjuOdyFk4Rh+HO8GBdRfWcR73h+7lF+8E=";
   };
   # there is a nested go.mod
   sourceRoot = "source/cmd/otelcorecol";
-  vendorSha256 = "sha256-ps6fUVg7vhGgy47WTJv/U1qHQ2MGXIWXNZ5Rddo1yQY=";
+  vendorSha256 = "sha256-BAcJpiO6jFKcjtbBA9LDad1ifDpb47nWOylH8dDBUN0=";
 
   preBuild = ''
     # set the build version, can't be done via ldflags
diff --git a/pkgs/tools/nix/npins/default.nix b/pkgs/tools/nix/npins/default.nix
new file mode 100644
index 0000000000000..8324a2d890076
--- /dev/null
+++ b/pkgs/tools/nix/npins/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, nix-gitignore
+, makeWrapper
+, stdenv
+, darwin
+, callPackage
+
+  # runtime dependencies
+, nix # for nix-prefetch-url
+, nix-prefetch-git
+, git # for git ls-remote
+}:
+
+let
+  runtimePath = lib.makeBinPath [ nix nix-prefetch-git git ];
+  sources = (builtins.fromJSON (builtins.readFile ./sources.json)).pins;
+in rustPlatform.buildRustPackage rec {
+  pname = "npins";
+  version = src.version;
+  src = passthru.mkSource sources.npins;
+
+  cargoSha256 = "0rwnzkmx91cwcz9yw0rbbqv73ba6ggim9f4qgz5pgy6h696ld2k8";
+
+  buildInputs = lib.optional stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ]);
+  nativeBuildInputs = [ makeWrapper ];
+
+  # (Almost) all tests require internet
+  doCheck = false;
+
+  postFixup = ''
+    wrapProgram $out/bin/npins --prefix PATH : "${runtimePath}"
+  '';
+
+  meta = with lib; {
+    description = "Simple and convenient dependency pinning for Nix";
+    homepage = "https://github.com/andir/npins";
+    license = licenses.eupl12;
+    maintainers = with maintainers; [ piegames ];
+  };
+
+  passthru.mkSource = callPackage ./source.nix {};
+}
diff --git a/pkgs/tools/nix/npins/source.nix b/pkgs/tools/nix/npins/source.nix
new file mode 100644
index 0000000000000..8c9e47204afd1
--- /dev/null
+++ b/pkgs/tools/nix/npins/source.nix
@@ -0,0 +1,57 @@
+# Not part of the public API – for use within nixpkgs only
+#
+# Usage:
+# ```nix
+# let
+#   sources = builtins.fromJSON (builtins.readFile ./sources.json);
+# in mkMyDerivation rec {
+#   version = src.version; # This obviously only works for releases
+#   src = pkgs.npins.mkSource sources.mySource;
+# }
+# ```
+
+{ fetchgit
+, fetchzip
+, fetchurl
+}:
+let
+  mkSource = spec:
+    assert spec ? type; let
+      path =
+        if spec.type == "Git" then mkGitSource spec
+        else if spec.type == "GitRelease" then mkGitSource spec
+        else if spec.type == "PyPi" then mkPyPiSource spec
+        else if spec.type == "Channel" then mkChannelSource spec
+        else throw "Unknown source type ${spec.type}";
+    in
+    spec // { outPath = path; };
+
+  mkGitSource = { repository, revision, url ? null, hash, ... }:
+    assert repository ? type;
+    # At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
+    # In the latter case, there we will always be an url to the tarball
+    if url != null then
+      (fetchzip {
+        inherit url;
+        sha256 = hash;
+        extension = "tar";
+      })
+    else assert repository.type == "Git"; fetchgit {
+      url = repository.url;
+      rev = revision;
+    };
+
+  mkPyPiSource = { url, hash, ... }:
+    fetchurl {
+      inherit url;
+      sha256 = hash;
+    };
+
+  mkChannelSource = { url, hash, ... }:
+    fetchzip {
+      inherit url;
+      sha256 = hash;
+      extension = "tar";
+    };
+in
+  mkSource
diff --git a/pkgs/tools/nix/npins/sources.json b/pkgs/tools/nix/npins/sources.json
new file mode 100644
index 0000000000000..0481abe3f97ba
--- /dev/null
+++ b/pkgs/tools/nix/npins/sources.json
@@ -0,0 +1,19 @@
+{
+  "pins": {
+    "npins": {
+      "type": "GitRelease",
+      "repository": {
+        "type": "GitHub",
+        "owner": "andir",
+        "repo": "npins"
+      },
+      "pre_releases": false,
+      "version_upper_bound": null,
+      "version": "0.1.0",
+      "revision": "5c9253ff6010f435ab73fbe1e50ae0fdca0ec07b",
+      "url": "https://api.github.com/repos/andir/npins/tarball/0.1.0",
+      "hash": "019fr9xsirld8kap75k18in3krkikqhjn4mglpy3lyhbhc5n1kh6"
+    }
+  },
+  "version": 2
+}
diff --git a/pkgs/tools/security/witness/default.nix b/pkgs/tools/security/witness/default.nix
index 921d524be6acc..f443d765b571e 100644
--- a/pkgs/tools/security/witness/default.nix
+++ b/pkgs/tools/security/witness/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "witness";
-  version = "0.1.7";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "testifysec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fkY3/UmHzggmysrae8VCY3NMBxC/LcWoQcXBELEzJlM=";
+    sha256 = "sha256-i76sw5ysWDZwuNt7CYtpVy9mEV643i4YaMxksglyPWw=";
   };
-  vendorSha256 = "sha256-ajWIjQXLvFQB1AVYyGjyWMrWIyue/d1uU5HHNf4/UcU=";
+  vendorSha256 = "sha256-A3fnAWEJ7SeUnDfIIOkbHIhUBRB8INcqMleOLL3LHF0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/text/discount/default.nix b/pkgs/tools/text/discount/default.nix
index 44d50c0c9634d..7422b445d818d 100644
--- a/pkgs/tools/text/discount/default.nix
+++ b/pkgs/tools/text/discount/default.nix
@@ -1,36 +1,28 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.7";
+  version = "2.2.7b";
   pname = "discount";
 
   src = fetchFromGitHub {
     owner = "Orc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p2gznrsvv82zxbajqir8y2ap1ribbgagqg1bzhv3i81p2byhjh7";
+    sha256 = "sha256-S6OVKYulhvEPRqNXBsvZ7m2W4cbdnrpZKPAo3SfD+9s=";
   };
 
-  patches = [
-    ./fix-configure-path.patch
-
-    # Fix parallel make depends:
-    # - https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
-    # - https://github.com/Orc/discount/pull/245
-    ./parallel-make.patch
-  ];
+  patches = [ ./fix-configure-path.patch ];
   configureScript = "./configure.sh";
-
   configureFlags = [
-    "--enable-all-features"
-    "--pkg-config"
     "--shared"
-    "--with-fenced-code"
-    # Use deterministic mangling
-    "--debian-glitch"
+    "--debian-glitch" # use deterministic mangling
+    "--pkg-config"
+    "--h1-title"
   ];
 
   enableParallelBuilding = true;
+  installTargets = [ "install.everything" ];
+
   doCheck = true;
 
   postFixup = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/text/discount/parallel-make.patch b/pkgs/tools/text/discount/parallel-make.patch
deleted file mode 100644
index 583622a9152fd..0000000000000
--- a/pkgs/tools/text/discount/parallel-make.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-https://github.com/Orc/discount/pull/245
-https://github.com/Orc/discount/commit/e42188e6c4c30d9de668cf98d98dd0c13ecce7cf.patch
-
-Fix parallel make failure: add missing pandoc_headers dependency.
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -139,7 +139,7 @@ test:	$(PGMS) $(TESTFRAMEWORK) verify
- 
- pandoc_headers.o: tools/pandoc_headers.c config.h
- 	$(BUILD) -c -o pandoc_headers.o tools/pandoc_headers.c
--pandoc_headers: pandoc_headers.o
-+pandoc_headers: pandoc_headers.o $(COMMON) $(MKDLIB)
- 	$(LINK) -o pandoc_headers pandoc_headers.o $(COMMON) -lmarkdown 
- 
- branch.o: tools/branch.c config.h
diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix
index c685ef603319c..3e348f159c17f 100644
--- a/pkgs/tools/text/link-grammar/default.nix
+++ b/pkgs/tools/text/link-grammar/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , pkg-config
 , python3
+, flex
 , sqlite
 , libedit
 , runCommand
@@ -13,18 +14,19 @@ let
 
 link-grammar = stdenv.mkDerivation rec {
   pname = "link-grammar";
-  version = "5.10.2";
+  version = "5.10.4";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
   src = fetchurl {
     url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-KM7HUuqg44l66WEzO2knRZ+Laf7+aMKqUnKYPX24abY=";
+    sha256 = "sha256-Pd4tEsre7aGTlEoereSElisCGXXhwgZDTMt4UEZIf4E=";
   };
 
   nativeBuildInputs = [
     pkg-config
     python3
+    flex
   ];
 
   buildInputs = [
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 271e5ba4c8526..eb5340740efa7 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -112,6 +112,7 @@ mapAliases ({
   bazel_0_29 = throw "bazel 0.29 is past end of life as it is not an lts version"; # Added 2022-05-09
   bazel_1 = throw "bazel 1 is past end of life as it is not an lts version"; # Added 2022-05-09
   bcat = throw "bcat has been removed because upstream is dead"; # Added 2021-08-22
+  beetsExternalPlugins = throw "beetsExternalPlugins has been deprecated, use beetsPackages.$pluginname"; # Added 2022-05-07
   beret = throw "beret has been removed"; # Added 2021-11-16
   bin_replace_string = throw "bin_replace_string has been removed: deleted by upstream"; # Added 2022-01-07
   bird2 = bird; # Added 2022-02-21
@@ -566,6 +567,8 @@ mapAliases ({
   icecat-bin = throw "icecat-bin has been removed, the binary builds are not maintained upstream"; # Added 2022-02-15
   icedtea8_web = adoptopenjdk-icedtea-web; # Added 2019-08-21
   icedtea_web = adoptopenjdk-icedtea-web; # Added 2019-08-21
+  icu59 = throw "icu59 has been removed, use a more recent version instead"; # Added 2022-05-14
+  icu65 = throw "icu65 has been removed, use a more recent version instead"; # Added 2022-05-14
   idea = throw "'idea' has been renamed to/replaced by 'jetbrains'"; # Converted to throw 2022-02-22
   imapproxy = throw "imapproxy has been removed because it did not support a supported openssl version"; # added 2021-12-15
   imagemagick7Big = imagemagickBig; # Added 2021-02-22
@@ -677,6 +680,7 @@ mapAliases ({
   liblastfm = libsForQt5.liblastfm; # Added 2020-06-14
   liblrdf = throw "'liblrdf' has been renamed to/replaced by 'lrdf'"; # Converted to throw 2022-02-22
   libmsgpack = throw "'libmsgpack' has been renamed to/replaced by 'msgpack'"; # Converted to throw 2022-02-22
+  libnih = throw "'libnih' has been removed"; # Converted to throw 2022-05-17
   libosmpbf = throw "libosmpbf was removed because it is no longer required by osrm-backend";
   libpng_apng = throw "libpng_apng has been removed, because it is equivalent to libpng"; # Added 2021-03-21
   libpulseaudio-vanilla = libpulseaudio; # Added 2022-04-20
@@ -868,6 +872,7 @@ mapAliases ({
   navit = throw "navit has been removed from nixpkgs, due to being unmaintained"; # Added 2021-06-07
   ncat = throw "'ncat' has been renamed to/replaced by 'nmap'"; # Converted to throw 2022-02-22
   neap = throw "neap was removed from nixpkgs, as it relies on python2"; # Added 2022-01-12
+  neochat = libsForQt5.plasmaMobileGear.neochat; # added 2022-05-10
   netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # Added 2020-08-31
   networkmanager_fortisslvpn = throw "'networkmanager_fortisslvpn' has been renamed to/replaced by 'networkmanager-fortisslvpn'"; # Converted to throw 2022-02-22
   networkmanager_iodine = throw "'networkmanager_iodine' has been renamed to/replaced by 'networkmanager-iodine'"; # Converted to throw 2022-02-22
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index c8ced6e50897b..3248f770f330f 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -968,6 +968,8 @@ with pkgs;
 
   adafruit-ampy = callPackage ../tools/misc/adafruit-ampy { };
 
+  addic7ed-cli = callPackage ../tools/misc/addic7ed-cli { };
+
   addlicense = callPackage ../tools/misc/addlicense { };
 
   adlplug = callPackage ../applications/audio/adlplug {
@@ -3994,6 +3996,8 @@ with pkgs;
 
   notify = callPackage ../tools/misc/notify { };
 
+  npins = callPackage ../tools/nix/npins { };
+
   nrsc5 = callPackage ../applications/misc/nrsc5 { };
 
   nsync = callPackage ../development/libraries/nsync { };
@@ -4386,28 +4390,8 @@ with pkgs;
 
   bee-clef = callPackage ../applications/networking/bee/bee-clef.nix { };
 
-  beets = callPackage ../tools/audio/beets {
-    pythonPackages = python3Packages;
-  };
-
-  beetsExternalPlugins =
-    let
-      pluginArgs = {
-        # This is a stripped down beets for testing of the external plugins.
-        beets = (beets.override {
-          enableAlternatives = false;
-          enableCopyArtifacts = false;
-          enableExtraFiles = false;
-        }).overrideAttrs (lib.const {
-          doInstallCheck = false;
-        });
-        pythonPackages = python3Packages;
-      };
-    in lib.recurseIntoAttrs {
-      alternatives = callPackage ../tools/audio/beets/plugins/alternatives.nix pluginArgs;
-      copyartifacts = callPackage ../tools/audio/beets/plugins/copyartifacts.nix pluginArgs;
-      extrafiles = callPackage ../tools/audio/beets/plugins/extrafiles.nix pluginArgs;
-    };
+  beetsPackages = lib.recurseIntoAttrs (callPackage ../tools/audio/beets { });
+  inherit (beetsPackages) beets beets-unstable;
 
   bento4 = callPackage ../tools/video/bento4 { };
 
@@ -5288,7 +5272,9 @@ with pkgs;
     autoreconfHook = buildPackages.autoreconfHook269;
   };
 
-  dump_syms = callPackage ../development/tools/dump_syms { };
+  dump_syms = callPackage ../development/tools/dump_syms {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   dumptorrent = callPackage ../tools/misc/dumptorrent { };
 
@@ -8499,8 +8485,6 @@ with pkgs;
 
   neo-cowsay = callPackage ../tools/misc/neo-cowsay { };
 
-  neochat = libsForQt5.callPackage ../applications/networking/instant-messengers/neochat { };
-
   neofetch = callPackage ../tools/misc/neofetch { };
 
   nerdfonts = callPackage ../data/fonts/nerdfonts { };
@@ -16556,10 +16540,7 @@ with pkgs;
 
   arrayfire = callPackage ../development/libraries/arrayfire {};
 
-  arrow-cpp = callPackage ../development/libraries/arrow-cpp ({
-  } // lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-    stdenv = overrideCC stdenv buildPackages.gcc6; # hidden symbol `__divmoddi4'
-  });
+  arrow-cpp = callPackage ../development/libraries/arrow-cpp {};
 
   arsenal = callPackage ../tools/security/arsenal { };
 
@@ -17866,65 +17847,34 @@ with pkgs;
 
   icu58 = callPackage (import ../development/libraries/icu/58.nix fetchurl) ({
     nativeBuildRoot = buildPackages.icu58.override { buildRootOnly = true; };
-  } //
-    (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
-  icu59 = callPackage ../development/libraries/icu/59.nix ({
-    nativeBuildRoot = buildPackages.icu59.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu60 = callPackage ../development/libraries/icu/60.nix ({
     nativeBuildRoot = buildPackages.icu60.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu63 = callPackage ../development/libraries/icu/63.nix ({
     nativeBuildRoot = buildPackages.icu63.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu64 = callPackage ../development/libraries/icu/64.nix ({
     nativeBuildRoot = buildPackages.icu64.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
-  icu65 = callPackage ../development/libraries/icu/65.nix ({
-    nativeBuildRoot = buildPackages.icu65.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu66 = callPackage ../development/libraries/icu/66.nix ({
     nativeBuildRoot = buildPackages.icu66.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-  }));
+  });
   icu67 = callPackage ../development/libraries/icu/67.nix ({
     nativeBuildRoot = buildPackages.icu67.override { buildRootOnly = true; };
-  } // (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'
-    }));
+  });
   icu69 = callPackage ../development/libraries/icu/69.nix ({
     nativeBuildRoot = buildPackages.icu69.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu70 = callPackage ../development/libraries/icu/70.nix ({
     nativeBuildRoot = buildPackages.icu70.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
   icu71 = callPackage ../development/libraries/icu/71.nix ({
     nativeBuildRoot = buildPackages.icu71.override { buildRootOnly = true; };
-  } // (lib.optionalAttrs (stdenv.hostPlatform.isi686 && stdenv.cc.isGNU) {
-      stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
-    }));
+  });
 
   icu = icu71;
 
@@ -19020,8 +18970,6 @@ with pkgs;
 
   libnftnl = callPackage ../development/libraries/libnftnl { };
 
-  libnih = callPackage ../development/libraries/libnih { };
-
   libnova = callPackage ../development/libraries/science/astronomy/libnova { };
 
   libnxml = callPackage ../development/libraries/libnxml { };
@@ -23257,6 +23205,8 @@ with pkgs;
   linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
   linuxPackages_5_15_hardened = linuxKernel.packages.linux_5_15_hardened;
   linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
+  linuxPackages_5_17_hardened = linuxKernel.packages.linux_5_17_hardened;
+  linux_5_17_hardened = linuxKernel.kernels.linux_5_17_hardened;
 
   # Hardkernel (Odroid) kernels.
   linuxPackages_hardkernel_latest = linuxKernel.packageAliases.linux_hardkernel_latest;
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index 7c892035e7fd0..8196811a7b2ba 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -236,6 +236,7 @@ in {
     linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 { };
     linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
     linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
+    linux_5_17_hardened = hardenedKernelFor kernels.linux_5_17 { };
 
   }));
   /*  Linux kernel modules are inherently tied to a specific kernel.  So
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index a00c35c61ba6a..3f538812767dc 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -195,8 +195,6 @@ in {
 
   addict = callPackage ../development/python-modules/addict { };
 
-  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
-
   adext = callPackage ../development/python-modules/adext { };
 
   adguardhome = callPackage ../development/python-modules/adguardhome { };
diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix
index 8551c5f9bff24..6459e6291f818 100644
--- a/pkgs/top-level/qt5-packages.nix
+++ b/pkgs/top-level/qt5-packages.nix
@@ -203,6 +203,8 @@ in (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdParty // kdeGea
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  qtmpris = callPackage ../development/libraries/qtmpris { };
+
   qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { };
 
   qtstyleplugins = callPackage ../development/libraries/qtstyleplugins { };