summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-11-10 00:02:09 +0000
committerGitHub <noreply@github.com>2021-11-10 00:02:09 +0000
commitd5964b8c81a1fb893d17912576892bc35ae6e04c (patch)
tree2ec13e3f2ca68c90766271ade6d82d5fccb579fa
parent92a74926fa9983ef0ddeed020f5ac68be5ac0515 (diff)
parent6e4d2d1f105c0092031c9aa490f14f6ade51e74b (diff)
downloadnixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar.gz
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar.bz2
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar.lz
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar.xz
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.tar.zst
nixpkgs-d5964b8c81a1fb893d17912576892bc35ae6e04c.zip
Merge staging-next into staging
-rw-r--r--doc/builders/trivial-builders.chapter.md22
-rwxr-xr-xlib/tests/modules.sh24
-rw-r--r--lib/tests/release.nix4
-rwxr-xr-xlib/tests/sources.sh6
-rw-r--r--maintainers/maintainer-list.nix12
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml30
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md6
-rwxr-xr-xnixos/maintainers/scripts/ec2/create-amis.sh17
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix10
-rw-r--r--nixos/modules/module-list.nix1
-rw-r--r--nixos/modules/services/networking/antennas.nix80
-rw-r--r--nixos/modules/services/networking/tinc.nix4
-rw-r--r--nixos/modules/services/security/tor.nix2
-rw-r--r--nixos/modules/system/boot/binfmt.nix1
-rw-r--r--pkgs/applications/audio/ChowKick/default.nix106
-rw-r--r--pkgs/applications/audio/aumix/default.nix15
-rw-r--r--pkgs/applications/audio/zrythm/default.nix169
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix12
-rw-r--r--pkgs/applications/editors/helix/default.nix6
-rw-r--r--pkgs/applications/graphics/gpicview/default.nix7
-rw-r--r--pkgs/applications/graphics/gqview/default.nix7
-rw-r--r--pkgs/applications/graphics/sane/xsane.nix17
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix18
-rw-r--r--pkgs/applications/misc/audio/sox/default.nix68
-rw-r--r--pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--pkgs/applications/misc/garmin-plugin/default.nix31
-rw-r--r--pkgs/applications/misc/gkrellm/default.nix6
-rw-r--r--pkgs/applications/misc/jigdo/default.nix10
-rw-r--r--pkgs/applications/misc/loxodo/default.nix21
-rw-r--r--pkgs/applications/misc/metar/default.nix13
-rw-r--r--pkgs/applications/misc/nwg-launchers/default.nix4
-rw-r--r--pkgs/applications/misc/procmail/default.nix21
-rw-r--r--pkgs/applications/misc/rofi-menugen/default.nix10
-rw-r--r--pkgs/applications/misc/stag/default.nix15
-rw-r--r--pkgs/applications/misc/xfontsel/default.nix10
-rw-r--r--pkgs/applications/misc/xxkb/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terranix/default.nix21
-rw-r--r--pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--pkgs/applications/radio/kalibrate-rtl/default.nix14
-rw-r--r--pkgs/applications/science/logic/prover9/default.nix10
-rw-r--r--pkgs/applications/science/logic/redprl/default.nix17
-rw-r--r--pkgs/applications/science/machine-learning/shogun/default.nix167
-rw-r--r--pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch74
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix4
-rw-r--r--pkgs/applications/terminal-emulators/mrxvt/default.nix14
-rw-r--r--pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix7
-rw-r--r--pkgs/applications/video/cinelerra/default.nix73
-rw-r--r--pkgs/applications/video/omxplayer/default.nix22
-rw-r--r--pkgs/applications/video/subdl/default.nix14
-rw-r--r--pkgs/applications/virtualization/docker-slim/default.nix4
-rw-r--r--pkgs/applications/virtualization/driver/win-pvdrivers/default.nix9
-rw-r--r--pkgs/applications/virtualization/singularity/default.nix4
-rw-r--r--pkgs/build-support/fetchgit/default.nix13
-rw-r--r--pkgs/build-support/trivial-builders.nix59
-rw-r--r--pkgs/development/embedded/platformio/core.nix21
-rw-r--r--pkgs/development/embedded/platformio/default.nix4
-rw-r--r--pkgs/development/embedded/platformio/use-local-spdx-license-list.patch8
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix6
-rw-r--r--pkgs/development/interpreters/bqn/cbqn/default.nix10
-rw-r--r--pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix6
-rw-r--r--pkgs/development/interpreters/joker/default.nix4
-rw-r--r--pkgs/development/libraries/gexiv2/default.nix6
-rw-r--r--pkgs/development/libraries/gtkimageview/default.nix2
-rw-r--r--pkgs/development/libraries/libkml/default.nix56
-rw-r--r--pkgs/development/libraries/physics/lhapdf/default.nix6
-rw-r--r--pkgs/development/libraries/stargate-libcds/Makefile.patch19
-rw-r--r--pkgs/development/libraries/stargate-libcds/default.nix47
-rw-r--r--pkgs/development/mobile/gomobile/default.nix7
-rw-r--r--pkgs/development/node-packages/node-packages.json1
-rw-r--r--pkgs/development/node-packages/node-packages.nix1029
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix8
-rw-r--r--pkgs/development/python-modules/aenum/default.nix15
-rw-r--r--pkgs/development/python-modules/agate/default.nix66
-rw-r--r--pkgs/development/python-modules/airtouch4pyapi/default.nix38
-rw-r--r--pkgs/development/python-modules/nassl/default.nix25
-rw-r--r--pkgs/development/python-modules/nbval/default.nix32
-rw-r--r--pkgs/development/python-modules/python-ecobee-api/default.nix4
-rw-r--r--pkgs/development/python-modules/python-engineio/default.nix33
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix18
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix10
-rw-r--r--pkgs/development/python-modules/pyturbojpeg/default.nix13
-rw-r--r--pkgs/development/python-modules/rdflib/default.nix6
-rw-r--r--pkgs/development/python-modules/streamz/default.nix55
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix1
-rw-r--r--pkgs/development/python-modules/yappi/default.nix25
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix15
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/img/default.nix2
-rw-r--r--pkgs/games/the-powder-toy/default.nix4
-rw-r--r--pkgs/misc/jackaudio/default.nix6
-rw-r--r--pkgs/misc/vscode-extensions/cpptools/default.nix2
-rw-r--r--pkgs/misc/vscode-extensions/default.nix26
-rw-r--r--pkgs/misc/vscode-extensions/remote-ssh/default.nix39
-rw-r--r--pkgs/os-specific/bsd/netbsd/default.nix6
-rw-r--r--pkgs/os-specific/linux/intel-cmt-cat/default.nix25
-rw-r--r--pkgs/os-specific/linux/sgx-sdk/default.nix159
-rw-r--r--pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix24
-rw-r--r--pkgs/servers/antennas/default.nix34
-rw-r--r--pkgs/servers/antennas/package.json20
-rw-r--r--pkgs/servers/antennas/yarn.lock703
-rw-r--r--pkgs/servers/antennas/yarn.nix997
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/x11/xorg/xwayland.nix4
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/networking/ndn-tools/default.nix45
-rw-r--r--pkgs/tools/package-management/nix/default.nix12
-rw-r--r--pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/top-level/aliases.nix3
-rw-r--r--pkgs/top-level/all-packages.nix35
-rw-r--r--pkgs/top-level/nixpkgs-basic-release-checks.nix3
-rw-r--r--pkgs/top-level/python-packages.nix3
-rw-r--r--pkgs/top-level/stage.nix6
115 files changed, 4225 insertions, 890 deletions
diff --git a/doc/builders/trivial-builders.chapter.md b/doc/builders/trivial-builders.chapter.md
index 46620e1b459..c3a3572cd9f 100644
--- a/doc/builders/trivial-builders.chapter.md
+++ b/doc/builders/trivial-builders.chapter.md
@@ -47,6 +47,28 @@ These functions write `text` to the Nix store. This is useful for creating scrip
 
 Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`.
 
+## `writeShellApplication` {#trivial-builder-writeShellApplication}
+
+This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck).
+
+For example, look at the following code:
+
+```nix
+writeShellApplication {
+  name = "show-nixos-org";
+
+  runtimeInputs = [ curl w3m ];
+
+  text = ''
+    curl -s 'https://nixos.org' | w3m -dump -T text/html
+  '';
+}
+```
+
+Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH
+was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict
+validation.
+
 ## `symlinkJoin` {#trivial-builder-symlinkJoin}
 
 This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within.
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 49fc8bcbafc..aba3f08122f 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -62,17 +62,17 @@ checkConfigError() {
 
 # Check boolean option.
 checkConfigOutput "false" config.enable ./declare-enable.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./define-enable.nix
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./define-enable.nix
 
 # Check integer types.
 # unsigned
 checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
 # positive
-checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
+checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n\s*- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
 # between
 checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
-checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n\s*- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
 
 # Check either types
 # types.either
@@ -125,7 +125,7 @@ checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable
 set -- config.enable ./define-enable.nix ./declare-enable.nix
 checkConfigOutput "true" "$@"
 checkConfigOutput "false" "$@" ./disable-define-enable.nix
-checkConfigError "The option .*enable.* does not exist. Definition values:\n- In .*: true" "$@" ./disable-declare-enable.nix
+checkConfigError "The option .*enable.* does not exist. Definition values:\n\s*- In .*: true" "$@" ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
 
@@ -142,18 +142,18 @@ checkConfigError 'infinite recursion encountered' "$@"
 
 # Check _module.check.
 set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*' "$@"
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*' "$@"
 checkConfigOutput "true" "$@" ./define-module-check.nix
 
 # Check coerced value.
 checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
 checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
-checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
+checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
 
 # Check coerced value with unsound coercion
 checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
-checkConfigError 'A definition for option .* is not of type .*. Definition values:\n- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
-checkConfigError 'unrecognised JSON value' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
+checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
+checkConfigError 'json.exception.parse_error' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
 
 # Check mkAliasOptionModule.
 checkConfigOutput "true" config.enable ./alias-with-priority.nix
@@ -169,7 +169,7 @@ checkConfigOutput "foo" config.submodule.foo ./declare-submoduleWith-special.nix
 ## shorthandOnlyDefines config behaves as expected
 checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-shorthand.nix
 checkConfigError 'is not of type `boolean' config.submodule.config ./declare-submoduleWith-shorthand.nix ./define-submoduleWith-noshorthand.nix
-checkConfigError "You're trying to declare a value of type \`bool'\nrather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
+checkConfigError "You're trying to declare a value of type \`bool'\n\s*rather than an attribute-set for the option" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-shorthand.nix
 checkConfigOutput "true" config.submodule.config ./declare-submoduleWith-noshorthand.nix ./define-submoduleWith-noshorthand.nix
 
 ## submoduleWith should merge all modules in one swoop
@@ -193,7 +193,7 @@ checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.ni
 checkConfigOutput "true" config.enable ./disable-recursive/main.nix
 checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
 checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
-checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
+checkConfigError 'The option .* does not exist. Definition values:\n\s*- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
 
 # Check that imports can depend on derivations
 checkConfigOutput "true" config.enable ./import-from-store.nix
@@ -277,7 +277,7 @@ checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
 ## types.functionTo
 checkConfigOutput "input is input" config.result ./functionTo/trivial.nix
 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- In .*wrong-type.nix' config.result ./functionTo/wrong-type.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
 
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index 77e0e1af755..815841e0a8f 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -23,6 +23,10 @@ pkgs.runCommand "nixpkgs-lib-tests" {
     export NIX_STORE_DIR=$TEST_ROOT/store
     export PAGER=cat
     cacheDir=$TEST_ROOT/binary-cache
+
+    mkdir -p $NIX_CONF_DIR
+    echo "experimental-features = nix-command" >> $NIX_CONF_DIR/nix.conf
+
     nix-store --init
 
     cp -r ${../.} lib
diff --git a/lib/tests/sources.sh b/lib/tests/sources.sh
index 71fee719cb2..1f63cac5005 100755
--- a/lib/tests/sources.sh
+++ b/lib/tests/sources.sh
@@ -26,7 +26,7 @@ touch {README.md,module.o,foo.bar}
 # nix-instantiate doesn't write out the source, only computing the hash, so
 # this uses the experimental nix command instead.
 
-dir="$(nix eval --raw '(with import <nixpkgs/lib>; "${
+dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSource ./.
 }")')"
 (cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
@@ -37,7 +37,7 @@ EOF
 ) || die "cleanSource 1"
 
 
-dir="$(nix eval --raw '(with import <nixpkgs/lib>; "${
+dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSourceWith { src = '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
 }")')"
 (cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
@@ -47,7 +47,7 @@ dir="$(nix eval --raw '(with import <nixpkgs/lib>; "${
 EOF
 ) || die "cleanSourceWith 1"
 
-dir="$(nix eval --raw '(with import <nixpkgs/lib>; "${
+dir="$(nix eval --impure --raw --expr '(with import <nixpkgs/lib>; "${
   cleanSourceWith { src = cleanSource '"$work"'; filter = path: type: ! hasSuffix ".bar" path; }
 }")')"
 (cd $dir; find) | sort -f | diff -U10 - <(cat <<EOF
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 44f322c3229..feebff4884f 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -10185,6 +10185,12 @@
     githubId = 720864;
     name = "Sébastien Bourdeauducq";
   };
+  sbellem = {
+    email = "sbellem@gmail.com";
+    github = "sbellem";
+    githubId = 125458;
+    name = "Sylvain Bellemare";
+  };
   sbond75 = {
     name = "sbond75";
     email = "43617712+sbond75@users.noreply.github.com";
@@ -11698,6 +11704,12 @@
     githubId = 1568873;
     name = "Torsten Scholak";
   };
+  tshaynik = {
+    email = "tshaynik@protonmail.com";
+    github = "tshaynik";
+    githubId = 15064765;
+    name = "tshaynik";
+  };
   tstrobel = {
     email = "4ZKTUB6TEP74PYJOPWIR013S2AV29YUBW5F9ZH2F4D5UMJUJ6S@hash.domains";
     name = "Thomas Strobel";
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index e433029a381..0fa7c0bf80f 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -17,6 +17,15 @@
     <itemizedlist>
       <listitem>
         <para>
+          Nix has been updated to version 2.4, reference its
+          <link xlink:href="https://discourse.nixos.org/t/nix-2-4-released/15822">release
+          notes</link> for more information on what has changed. The
+          previous version of Nix, 2.3.16, remains available for the
+          time being in the <literal>nix_2_3</literal> package.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>iptables</literal> now uses
           <literal>nf_tables</literal> backend.
         </para>
@@ -142,6 +151,27 @@
           </listitem>
         </itemizedlist>
       </listitem>
+      <listitem>
+        <para>
+          OpenSSH was updated to version 8.8p1
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              This breaks connections to old SSH daemons as ssh-rsa host
+              keys and ssh-rsa public keys that were signed with SHA-1
+              are disabled by default now
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              These can be re-enabled, see the
+              <link xlink:href="https://www.openssh.com/txt/release-8.8">OpenSSH
+              changelog</link> for details
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-21.11-new-services">
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 7567c7d6439..9f0d52c4175 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -6,6 +6,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## Highlights {#sec-release-21.11-highlights}
 
+- Nix has been updated to version 2.4, reference its [release notes](https://discourse.nixos.org/t/nix-2-4-released/15822) for more information on what has changed. The previous version of Nix, 2.3.16, remains available for the time being in the `nix_2_3` package.
+
 - `iptables` now uses `nf_tables` backend.
 
 - PHP now defaults to PHP 8.0, updated from 7.4.
@@ -44,6 +46,10 @@ In addition to numerous new and upgraded packages, this release has the followin
   - building LXD images from configurations is now directly possible with just nixpkgs
   - hydra is now building nixOS LXD images that can be used standalone with full nixos-rebuild support
 
+- OpenSSH was updated to version 8.8p1
+  - This breaks connections to old SSH daemons as ssh-rsa host keys and ssh-rsa public keys that were signed with SHA-1 are disabled by default now
+  - These can be re-enabled, see the [OpenSSH changelog](https://www.openssh.com/txt/release-8.8) for details
+
 ## New Services {#sec-release-21.11-new-services}
 
 - [btrbk](https://digint.ch/btrbk/index.html), a backup tool for btrfs subvolumes, taking advantage of btrfs specific capabilities to create atomic snapshots and transfer them incrementally to your backup locations. Available as [services.btrbk](options.html#opt-services.brtbk.instances).
diff --git a/nixos/maintainers/scripts/ec2/create-amis.sh b/nixos/maintainers/scripts/ec2/create-amis.sh
index 712d9b548ff..35589458739 100755
--- a/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -65,13 +65,18 @@ read_image_info() {
 # We handle a single image per invocation, store all attributes in
 # globals for convenience.
 zfs_disks=$(read_image_info .disks)
-image_label="$(read_image_info .label)${zfs_disks:+-ZFS}"
+is_zfs_image=
+if jq -e .boot <<< "$zfs_disks"; then
+  is_zfs_image=1
+  zfs_boot=".disks.boot"
+fi
+image_label="$(read_image_info .label)${is_zfs_image:+-ZFS}"
 image_system=$(read_image_info .system)
-image_files=( $(read_image_info "${zfs_disks:+.disks.root}.file") )
+image_files=( $(read_image_info ".disks.root.file") )
 
-image_logical_bytes=$(read_image_info "${zfs_disks:+.disks.boot}.logical_bytes")
+image_logical_bytes=$(read_image_info "${zfs_boot:-.disks.root}.logical_bytes")
 
-if [[ -n "$zfs_disks" ]]; then
+if [[ -n "$is_zfs_image" ]]; then
   image_files+=( $(read_image_info .disks.boot.file) )
 fi
 
@@ -192,7 +197,7 @@ upload_image() {
     for image_file in "${image_files[@]}"; do
         local aws_path=${image_file#/}
 
-        if [[ -n "$zfs_disks" ]]; then
+        if [[ -n "$is_zfs_image" ]]; then
             local suffix=${image_file%.*}
             suffix=${suffix##*.}
         fi
@@ -239,7 +244,7 @@ upload_image() {
             "DeviceName=/dev/xvda,Ebs={SnapshotId=$snapshot_id,VolumeSize=$image_logical_gigabytes,DeleteOnTermination=true,VolumeType=gp3}"
         )
 
-        if [[ -n "$zfs_disks" ]]; then
+        if [[ -n "$is_zfs_image" ]]; then
             local root_snapshot_id=$(read_state "$region.$image_label.root.$image_system" snapshot_id)
 
             local root_image_logical_bytes=$(read_image_info ".disks.root.logical_bytes")
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index cb509b7340b..065cea470fb 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
 {
-  x86_64-linux = "/nix/store/nzp4m3cmm7wawk031byh8jg4cdzjq212-nix-2.3.16";
-  i686-linux = "/nix/store/zsaza9pwim617ak15fsc31lv65b9w3in-nix-2.3.16";
-  aarch64-linux = "/nix/store/7f6z40gyd405yd50qkyzwilnqw106bx8-nix-2.3.16";
-  x86_64-darwin = "/nix/store/c43kyri67ia8mibs0id5ara7gqwlkybf-nix-2.3.16";
-  aarch64-darwin = "/nix/store/6jwhak3cvsgnbqs540n27g8pxnk427fr-nix-2.3.16";
+  x86_64-linux = "/nix/store/hapw7q1fkjxvprnkcgw9ppczavg4daj2-nix-2.4";
+  i686-linux = "/nix/store/8qlvh8pp5j8wgrzj3is2jlbhgrwgsiy9-nix-2.4";
+  aarch64-linux = "/nix/store/h48lkygcqj4hdibbdnpl67q7ks6vkrd6-nix-2.4";
+  x86_64-darwin = "/nix/store/c3mvzszvyzakvcp9spnjvsb8m2bpjk7m-nix-2.4";
+  aarch64-darwin = "/nix/store/hbfqs62r0hga2yr4zi5kc7fzhf71bq9n-nix-2.4";
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 8021682e3ff..c5f0b211ff8 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -685,6 +685,7 @@
   ./services/networking/3proxy.nix
   ./services/networking/adguardhome.nix
   ./services/networking/amuled.nix
+  ./services/networking/antennas.nix
   ./services/networking/aria2.nix
   ./services/networking/asterisk.nix
   ./services/networking/atftpd.nix
diff --git a/nixos/modules/services/networking/antennas.nix b/nixos/modules/services/networking/antennas.nix
new file mode 100644
index 00000000000..ef98af22f20
--- /dev/null
+++ b/nixos/modules/services/networking/antennas.nix
@@ -0,0 +1,80 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.services.antennas;
+in
+
+{
+  options = {
+    services.antennas = {
+      enable = mkEnableOption "Antennas";
+
+      tvheadendUrl = mkOption {
+        type        = types.str;
+        default     = "http://localhost:9981";
+        description = "URL of Tvheadend.";
+      };
+
+      antennasUrl = mkOption {
+        type        = types.str;
+        default     = "http://127.0.0.1:5004";
+        description = "URL of Antennas.";
+      };
+
+      tunerCount = mkOption {
+        type        = types.int;
+        default     = 6;
+        description = "Numbers of tuners in tvheadend.";
+      };
+
+      deviceUUID = mkOption {
+        type        = types.str;
+        default     = "2f70c0d7-90a3-4429-8275-cbeeee9cd605";
+        description = "Device tuner UUID. Change this if you are running multiple instances.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.antennas = {
+      description = "Antennas HDHomeRun emulator for Tvheadend. ";
+      wantedBy    = [ "multi-user.target" ];
+
+      # Config
+      environment = {
+        TVHEADEND_URL = cfg.tvheadendUrl;
+        ANTENNAS_URL = cfg.antennasUrl;
+        TUNER_COUNT = toString cfg.tunerCount;
+        DEVICE_UUID = cfg.deviceUUID;
+      };
+
+      serviceConfig = {
+         ExecStart = "${pkgs.antennas}/bin/antennas";
+
+        # Antennas expects all resources like html and config to be relative to it's working directory
+        WorkingDirectory = "${pkgs.antennas}/libexec/antennas/deps/antennas/";
+
+        # Hardening
+        CapabilityBoundingSet = [ "" ];
+        DynamicUser = true;
+        LockPersonality = true;
+        ProcSubset = "pid";
+        PrivateDevices = true;
+        PrivateUsers = true;
+        PrivateTmp = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "strict";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/networking/tinc.nix b/nixos/modules/services/networking/tinc.nix
index 1d77503d68b..9db433fa073 100644
--- a/nixos/modules/services/networking/tinc.nix
+++ b/nixos/modules/services/networking/tinc.nix
@@ -289,13 +289,13 @@ in
             };
 
             chroot = mkOption {
-              default = true;
+              default = false;
               type = types.bool;
               description = ''
                 Change process root directory to the directory where the config file is located (/etc/tinc/netname/), for added security.
                 The chroot is performed after all the initialization is done, after writing pid files and opening network sockets.
 
-                Note that tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
+                Note that this currently breaks dns resolution and tinc can't run scripts anymore (such as tinc-down or host-up), unless it is setup to be runnable inside chroot environment.
               '';
             };
 
diff --git a/nixos/modules/services/security/tor.nix b/nixos/modules/services/security/tor.nix
index c94b248d5f1..c3e3248ee8a 100644
--- a/nixos/modules/services/security/tor.nix
+++ b/nixos/modules/services/security/tor.nix
@@ -1012,6 +1012,7 @@ in
         # Tor cannot currently bind privileged port when PrivateUsers=true,
         # see https://gitlab.torproject.org/legacy/trac/-/issues/20930
         PrivateUsers = !bindsPrivilegedPort;
+        ProcSubset = "pid";
         ProtectClock = true;
         ProtectControlGroups = true;
         ProtectHome = true;
@@ -1019,6 +1020,7 @@ in
         ProtectKernelLogs = true;
         ProtectKernelModules = true;
         ProtectKernelTunables = true;
+        ProtectProc = "invisible";
         ProtectSystem = "strict";
         RemoveIPC = true;
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" "AF_NETLINK" ];
diff --git a/nixos/modules/system/boot/binfmt.nix b/nixos/modules/system/boot/binfmt.nix
index 2408ecc80d2..fdb4d0e4c7f 100644
--- a/nixos/modules/system/boot/binfmt.nix
+++ b/nixos/modules/system/boot/binfmt.nix
@@ -248,6 +248,7 @@ in {
         description = ''
           List of systems to emulate. Will also configure Nix to
           support your new systems.
+          Warning: the builder can execute all emulated systems within the same build, which introduces impurities in the case of cross compilation.
         '';
         type = types.listOf types.str;
       };
diff --git a/pkgs/applications/audio/ChowKick/default.nix b/pkgs/applications/audio/ChowKick/default.nix
new file mode 100644
index 00000000000..135ed3a11a1
--- /dev/null
+++ b/pkgs/applications/audio/ChowKick/default.nix
@@ -0,0 +1,106 @@
+{ alsa-lib
+, at-spi2-core
+, brotli
+, cmake
+, curl
+, dbus
+, epoxy
+, fetchFromGitHub
+, freeglut
+, freetype
+, gtk2-x11
+, lib
+, libGL
+, libXcursor
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libdatrie
+, libjack2
+, libpsl
+, libselinux
+, libsepol
+, libsysprof-capture
+, libthai
+, libxkbcommon
+, lv2
+, pcre
+, pkg-config
+, python3
+, sqlite
+, stdenv
+, util-linuxMinimal
+, webkitgtk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ChowKick";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "Chowdhury-DSP";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0amnp0p7ckbbr9dcbdnld1ryv46kvza2dj8m6hzmi7c1s4df8x5q";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+  ];
+  buildInputs = [
+    alsa-lib
+    at-spi2-core
+    brotli
+    curl
+    dbus
+    epoxy
+    freeglut
+    freetype
+    gtk2-x11
+    libGL
+    libXcursor
+    libXdmcp
+    libXext
+    libXinerama
+    libXrandr
+    libXtst
+    libdatrie
+    libjack2
+    libpsl
+    libselinux
+    libsepol
+    libsysprof-capture
+    libthai
+    libxkbcommon
+    lv2
+    pcre
+    python3
+    sqlite
+    util-linuxMinimal
+    webkitgtk
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin
+    cp -r ChowKick_artefacts/Release/LV2//${pname}.lv2 $out/lib/lv2
+    cp -r ChowKick_artefacts/Release/VST3/${pname}.vst3 $out/lib/vst3
+    cp ChowKick_artefacts/Release/Standalone/${pname}  $out/bin
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Chowdhury-DSP/ChowKick";
+    description = "Kick synthesizer based on old-school drum machine circuits";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/audio/aumix/default.nix b/pkgs/applications/audio/aumix/default.nix
index 7dcabf6a2a8..51dda20cc3a 100644
--- a/pkgs/applications/audio/aumix/default.nix
+++ b/pkgs/applications/audio/aumix/default.nix
@@ -4,12 +4,10 @@
 , gettext
 , ncurses
 , gtkGUI ? false
-, pkg-config ? null
-, gtk2 ? null
+, pkg-config
+, gtk2
 }:
 
-assert gtkGUI -> pkg-config != null && gtk2 != null;
-
 stdenv.mkDerivation rec {
   pname = "aumix";
   version = "2.9.1";
@@ -22,16 +20,15 @@ stdenv.mkDerivation rec {
   buildInputs = [ gettext ncurses ]
     ++ lib.optionals gtkGUI [ pkg-config gtk2 ];
 
-  meta = {
+  meta = with lib; {
     description = "Audio mixer for X and the console";
     longDescription = ''
       Aumix adjusts an audio mixer from X, the console, a terminal,
       the command line or a script.
     '';
     homepage = "http://www.jpj.net/~trevor/aumix.html";
-    license = lib.licenses.gpl2Plus;
-
-    maintainers = [ ];
-    platforms = lib.platforms.linux;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/zrythm/default.nix b/pkgs/applications/audio/zrythm/default.nix
new file mode 100644
index 00000000000..ee6eef5527f
--- /dev/null
+++ b/pkgs/applications/audio/zrythm/default.nix
@@ -0,0 +1,169 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, SDL2
+, alsa-lib
+, libaudec
+, bash
+, bash-completion
+, breeze-icons
+, carla
+, chromaprint
+, cmake
+, curl
+, dconf
+, epoxy
+, ffmpeg
+, fftw
+, fftwFloat
+, flex
+, glib
+, gtk3
+, gtksourceview3
+, guile
+, graphviz
+, help2man
+, json-glib
+, jq
+, libbacktrace
+, libcyaml
+, libgtop
+, libjack2
+, libpulseaudio
+, libsamplerate
+, libsndfile
+, libsoundio
+, libxml2
+, libyaml
+, lilv
+, lv2
+, meson
+, ninja
+, pandoc
+, pcre
+, pcre2
+, pkg-config
+, python3
+, reproc
+, rtaudio
+, rtmidi
+, rubberband
+, serd
+, sord
+, sratom
+, texi2html
+, wrapGAppsHook
+, xdg-utils
+, xxHash
+, vamp-plugin-sdk
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zrythm";
+  version = "1.0.0-alpha.26.0.13";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-dkXlkJ+qlfxV9Bv2UvZZa2iRVm8tgpK4JxkWL2Jeq48=";
+  };
+
+  nativeBuildInputs = [
+    help2man
+    jq
+    libaudec
+    libxml2
+    meson
+    ninja
+    pandoc
+    pkg-config
+    python3
+    python3.pkgs.sphinx
+    texi2html
+    wrapGAppsHook
+    cmake
+  ];
+
+  buildInputs = [
+    SDL2
+    alsa-lib
+    bash-completion
+    carla
+    chromaprint
+    curl
+    dconf
+    epoxy
+    ffmpeg
+    fftw
+    fftwFloat
+    flex
+    breeze-icons
+    glib
+    gtk3
+    gtksourceview3
+    graphviz
+    guile
+    json-glib
+    libbacktrace
+    libcyaml
+    libgtop
+    libjack2
+    libpulseaudio
+    libsamplerate
+    libsndfile
+    libsoundio
+    libyaml
+    lilv
+    lv2
+    pcre
+    pcre2
+    reproc
+    rtaudio
+    rtmidi
+    rubberband
+    serd
+    sord
+    sratom
+    vamp-plugin-sdk
+    xdg-utils
+    xxHash
+    zstd
+  ];
+
+  mesonFlags = [
+    "-Denable_ffmpeg=true"
+    "-Denable_rtmidi=true"
+    "-Denable_rtaudio=true"
+    "-Denable_sdl=true"
+    "-Dmanpage=true"
+    # "-Duser_manual=true" # needs sphinx-intl
+    "-Dlsp_dsp=disabled"
+    "-Db_lto=false"
+  ];
+
+  NIX_LDFLAGS = ''
+    -lfftw3_threads -lfftw3f_threads
+  '';
+
+  postPatch = ''
+    chmod +x scripts/meson-post-install.sh
+    patchShebangs ext/sh-manpage-completions/run.sh scripts/generic_guile_wrap.sh \
+      scripts/meson-post-install.sh tools/check_have_unlimited_memlock.sh
+  '';
+
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix GSETTINGS_SCHEMA_DIR : "$out/share/gsettings-schemas/${pname}-${version}/glib-2.0/schemas/"
+    )
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.zrythm.org";
+    description = "Highly automated and intuitive digital audio workstation";
+    maintainers = with maintainers; [ tshaynik magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.agpl3Plus;
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix b/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
index 9dcf7ae45ed..64a8402650b 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/session-management-for-emacs/default.nix
@@ -16,12 +16,14 @@ stdenv.mkDerivation rec {
     cp lisp/*.el "$out/share/emacs/site-lisp/"
   '';
 
-  meta = {
-    # installation: add to your ~/.emacs
-    #  (require 'session)
-    #  (add-hook 'after-init-hook 'session-initialize)
+  meta = with lib; {
+    /* installation: add to your ~/.emacs
+      (require 'session)
+      (add-hook 'after-init-hook 'session-initialize)
+    */
     description = "Small session management for emacs";
     homepage = "http://emacs-session.sourceforge.net/";
-    license = "GPL";
+    license = license.gpl;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/editors/helix/default.nix b/pkgs/applications/editors/helix/default.nix
index a46124daab2..c0c8e2a57b3 100644
--- a/pkgs/applications/editors/helix/default.nix
+++ b/pkgs/applications/editors/helix/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "helix";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "helix-editor";
     repo = pname;
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-lScMHZ/pLcHkuvv8kSKnYK5AFVxyhOUMFdsu3nlDVD0=";
+    sha256 = "sha256-NoVg/8oJIgMQtxlCSjrLnYCG8shigYqZzWAQwmiqxgA=";
   };
 
-  cargoSha256 = "sha256-N5vlPoYyksHEZsyia8u8qtoEBY6qsXqO9CRBFaTQmiw=";
+  cargoSha256 = "sha256-kqPI8WpGpr0VL7CbBTSsjKl3xqJrv/6Qjr6UFnIgaVo=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/applications/graphics/gpicview/default.nix b/pkgs/applications/graphics/gpicview/default.nix
index 9e5de29c31b..edafa5612a2 100644
--- a/pkgs/applications/graphics/gpicview/default.nix
+++ b/pkgs/applications/graphics/gpicview/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ intltool gtk2 ];
+
   meta = with lib; {
     description = "A simple and fast image viewer for X";
     homepage = "http://lxde.sourceforge.net/gpicview/";
@@ -24,7 +28,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ lovek323 ];
     platforms = platforms.unix;
   };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ intltool gtk2 ];
 }
diff --git a/pkgs/applications/graphics/gqview/default.nix b/pkgs/applications/graphics/gqview/default.nix
index 9dfbf0e50f1..427429404a0 100644
--- a/pkgs/applications/graphics/gqview/default.nix
+++ b/pkgs/applications/graphics/gqview/default.nix
@@ -1,10 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, gtk2, libpng }:
 
-assert pkg-config != null && gtk2 != null && libpng != null;
-# Note that we cannot just copy gtk's png attribute, since gtk might
-# not be linked against png.
-# !!! assert libpng == gtk2.libpng;
-
 stdenv.mkDerivation rec {
   pname = "gqview";
   version = "2.1.5";
@@ -15,6 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ gtk2 libpng ];
 
   hardeningDisable = [ "format" ];
@@ -26,5 +22,6 @@ stdenv.mkDerivation rec {
     homepage = "http://gqview.sourceforge.net";
     license = licenses.gpl2;
     platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/graphics/sane/xsane.nix b/pkgs/applications/graphics/sane/xsane.nix
index 8febb819bb3..007483fb5e2 100644
--- a/pkgs/applications/graphics/sane/xsane.nix
+++ b/pkgs/applications/graphics/sane/xsane.nix
@@ -7,13 +7,11 @@
 , gtk2
 , pkg-config
 , libpng
-, libusb-compat-0_1 ? null
+, libusb-compat-0_1
 , gimpSupport ? false
-, gimp ? null
+, gimp
 }:
 
-assert gimpSupport -> gimp != null;
-
 stdenv.mkDerivation rec {
   pname = "xsane";
   version = "0.999";
@@ -29,14 +27,15 @@ stdenv.mkDerivation rec {
   '';
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libpng sane-backends sane-frontends libX11 gtk2 ]
-    ++ (if libusb-compat-0_1 != null then [ libusb-compat-0_1 ] else [ ])
+
+  buildInputs = [ libpng libusb-compat-0_1 sane-backends sane-frontends libX11 gtk2 ]
     ++ lib.optional gimpSupport gimp;
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.sane-project.org/";
     description = "Graphical scanning frontend for sane";
-    license = lib.licenses.gpl2Plus;
-    platforms = with lib.platforms; linux;
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index 6b44128fbce..2bce30365f0 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -13,28 +13,21 @@
 , gdk-pixbuf-xlib
 }:
 
-assert stdenv.hostPlatform.system == "i686-linux";
-
-let
-  baseVersion = "9.5.5";
-in
 stdenv.mkDerivation rec {
   pname = "adobe-reader";
-  version = "${baseVersion}-1";
+  version = "9.5.5";
 
+  # TODO: convert to phases
   builder = ./builder.sh;
 
   src = fetchurl {
-    url = "http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${baseVersion}/enu/AdbeRdr${version}_i486linux_enu.tar.bz2";
+    url = "http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/${version}/enu/AdbeRdr${version}-1_i486linux_enu.tar.bz2";
     sha256 = "0h35misxrqkl5zlmmvray1bqf4ywczkm89n9qw7d9arqbg3aj3pf";
   };
 
   # !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu.
-  # We should probably remove those and use the regular Nixpkgs
-  # versions.
-
-  libPath = lib.makeLibraryPath
-    [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
+  # We should probably remove those and use the regular Nixpkgs versions.
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
 
   passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
 
@@ -46,5 +39,6 @@ stdenv.mkDerivation rec {
       "Numerous unresolved vulnerabilities"
       "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
     ];
+    platforms = [ "i686-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/audio/sox/default.nix b/pkgs/applications/misc/audio/sox/default.nix
index 02a9ab36295..29a932f40d5 100644
--- a/pkgs/applications/misc/audio/sox/default.nix
+++ b/pkgs/applications/misc/audio/sox/default.nix
@@ -5,36 +5,34 @@
 , pkg-config
 , CoreAudio
 , enableAlsa ? true
-, alsa-lib ? null
+, alsa-lib
 , enableLibao ? true
-, libao ? null
+, libao
 , enableLame ? config.sox.enableLame or false
-, lame ? null
+, lame
 , enableLibmad ? true
-, libmad ? null
+, libmad
 , enableLibogg ? true
-, libogg ? null
-, libvorbis ? null
+, libogg
+, libvorbis
 , enableOpusfile ? true
-, opusfile ? null
+, opusfile
 , enableFLAC ? true
-, flac ? null
+, flac
 , enablePNG ? true
-, libpng ? null
+, libpng
 , enableLibsndfile ? true
-, libsndfile ? null
+, libsndfile
 , enableWavpack ? true
-, wavpack ? null
+, wavpack
   # amrnb and amrwb are unfree, disabled by default
 , enableAMR ? false
-, amrnb ? null
-, amrwb ? null
-, enableLibpulseaudio ? true
-, libpulseaudio ? null
+, amrnb
+, amrwb
+, enableLibpulseaudio ? stdenv.isLinux
+, libpulseaudio
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "sox";
   version = "14.4.2";
@@ -45,30 +43,30 @@ stdenv.mkDerivation rec {
   };
 
   # configure.ac uses pkg-config only to locate libopusfile
-  nativeBuildInputs = optional enableOpusfile pkg-config;
+  nativeBuildInputs = lib.optional enableOpusfile pkg-config;
 
   patches = [ ./0001-musl-rewind-pipe-workaround.patch ];
 
   buildInputs =
-    optional (enableAlsa && stdenv.isLinux) alsa-lib ++
-    optional enableLibao libao ++
-    optional enableLame lame ++
-    optional enableLibmad libmad ++
-    optionals enableLibogg [ libogg libvorbis ] ++
-    optional enableOpusfile opusfile ++
-    optional enableFLAC flac ++
-    optional enablePNG libpng ++
-    optional enableLibsndfile libsndfile ++
-    optional enableWavpack wavpack ++
-    optionals enableAMR [ amrnb amrwb ] ++
-    optional enableLibpulseaudio libpulseaudio ++
-    optional (stdenv.isDarwin) CoreAudio;
+    lib.optional (enableAlsa && stdenv.isLinux) alsa-lib
+    ++ lib.optional enableLibao libao
+    ++ lib.optional enableLame lame
+    ++ lib.optional enableLibmad libmad
+    ++ lib.optionals enableLibogg [ libogg libvorbis ]
+    ++ lib.optional enableOpusfile opusfile
+    ++ lib.optional enableFLAC flac
+    ++ lib.optional enablePNG libpng
+    ++ lib.optional enableLibsndfile libsndfile
+    ++ lib.optional enableWavpack wavpack
+    ++ lib.optionals enableAMR [ amrnb amrwb ]
+    ++ lib.optional enableLibpulseaudio libpulseaudio
+    ++ lib.optional stdenv.isDarwin CoreAudio;
 
-  meta = {
+  meta = with lib; {
     description = "Sample Rate Converter for audio";
     homepage = "http://sox.sourceforge.net/";
-    maintainers = [ lib.maintainers.marcweber ];
-    license = if enableAMR then lib.licenses.unfree else lib.licenses.gpl2Plus;
-    platforms = lib.platforms.linux ++ lib.platforms.darwin;
+    maintainers = with maintainers; [ marcweber ];
+    license = if enableAMR then licenses.unfree else licenses.gpl2Plus;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/gallery-dl/default.nix b/pkgs/applications/misc/gallery-dl/default.nix
index e7a7eb0465b..20590552fc9 100644
--- a/pkgs/applications/misc/gallery-dl/default.nix
+++ b/pkgs/applications/misc/gallery-dl/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonApplication, fetchPypi, requests, pytestCheckHook }:
+{ lib, buildPythonApplication, fetchPypi, requests, youtube-dl, pytestCheckHook }:
 
 buildPythonApplication rec {
   pname = "gallery_dl";
@@ -9,7 +9,7 @@ buildPythonApplication rec {
     sha256 = "7fec9ac69582dbd9922666e6ece3142ae52dc9679a2c4a613f6ee94ad09e5f68";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests youtube-dl ];
 
   checkInputs = [ pytestCheckHook ];
   pytestFlagsArray = [
diff --git a/pkgs/applications/misc/garmin-plugin/default.nix b/pkgs/applications/misc/garmin-plugin/default.nix
index 724f2aeee62..c401b272256 100644
--- a/pkgs/applications/misc/garmin-plugin/default.nix
+++ b/pkgs/applications/misc/garmin-plugin/default.nix
@@ -1,28 +1,39 @@
-{ lib, stdenv, fetchurl, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
+{ lib, stdenv, fetchFromGitHub, garmintools, libgcrypt, libusb-compat-0_1, pkg-config, tinyxml, zlib }:
+
 stdenv.mkDerivation rec {
   pname = "garmin-plugin";
   version = "0.3.26";
 
-  src = fetchurl {
-    url = "https://github.com/adiesner/GarminPlugin/archive/V${version}.tar.gz";
-    sha256 = "15gads1fj4sj970m5960dgnhys41ksi4cm53ldkf67wn8dc9i4k0";
+  src = fetchFromGitHub {
+    owner = "adiesner";
+    repo = "GarminPlugin";
+    rev = "V${version}";
+    sha256 = "sha256-l0WAbEsQl1dCADf5gTepYjsA1rQCJMLcrTxRR4PfUus=";
   };
-  sourceRoot = "GarminPlugin-${version}/src";
+
+  preConfigure = ''
+    cd src
+  '';
+
   nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ garmintools libusb-compat-0_1 libgcrypt tinyxml zlib ];
+
   configureFlags = [
     "--with-libgcrypt-prefix=${libgcrypt.dev}"
     "--with-garmintools-incdir=${garmintools}/include"
     "--with-garmintools-libdir=${garmintools}/lib"
   ];
+
   installPhase = ''
     mkdir -p $out/lib/mozilla/plugins
     cp npGarminPlugin.so $out/lib/mozilla/plugins
   '';
-  meta = {
-    homepage = "http://www.andreas-diesner.de/garminplugin";
-    license = lib.licenses.gpl3;
-    maintainers = [ ];
-    platforms = lib.platforms.linux;
+
+  meta = with lib; {
+    homepage = "https://adiesner.github.io/GarminPlugin/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/misc/gkrellm/default.nix b/pkgs/applications/misc/gkrellm/default.nix
index 9c59377ea37..0a62ce4ea51 100644
--- a/pkgs/applications/misc/gkrellm/default.nix
+++ b/pkgs/applications/misc/gkrellm/default.nix
@@ -15,8 +15,6 @@
 , wrapGAppsHook
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "gkrellm";
   version = "2.3.11";
@@ -28,7 +26,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ copyDesktopItems pkg-config which wrapGAppsHook ];
   buildInputs = [ gettext glib gtk2 libX11 libSM libICE ]
-    ++ optionals stdenv.isDarwin [ IOKit ];
+    ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   hardeningDisable = [ "format" ];
 
@@ -62,7 +60,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  meta = {
+  meta = with lib; {
     description = "Themeable process stack of system monitors";
     longDescription = ''
       GKrellM is a single process stack of system monitors which
diff --git a/pkgs/applications/misc/jigdo/default.nix b/pkgs/applications/misc/jigdo/default.nix
index 0f5a9aa0d82..9e07193cdb7 100644
--- a/pkgs/applications/misc/jigdo/default.nix
+++ b/pkgs/applications/misc/jigdo/default.nix
@@ -4,7 +4,6 @@ stdenv.mkDerivation rec {
   pname = "jigdo";
   version = "0.7.3";
 
-  # Debian sources
   src = fetchurl {
     url = "http://ftp.de.debian.org/debian/pool/main/j/jigdo/jigdo_${version}.orig.tar.gz";
     sha256 = "1qvqzgzb0dzq82fa1ffs6hyij655rajnfwkljk1y0mnkygnha1xv";
@@ -22,10 +21,11 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--without-libdb" ];
 
-  meta = {
+  meta = with lib; {
     description = "Download utility that can fetch files from several sources simultaneously";
-    homepage = "http://atterer.net/jigdo/";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.unix;
+    homepage = "http://atterer.org/jigdo/";
+    license = licenses.gpl2Only;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/misc/loxodo/default.nix b/pkgs/applications/misc/loxodo/default.nix
index d304e39f9d7..2e7a1365f4d 100644
--- a/pkgs/applications/misc/loxodo/default.nix
+++ b/pkgs/applications/misc/loxodo/default.nix
@@ -1,19 +1,17 @@
-{ lib, python27Packages, fetchgit }:
-let
-  py = python27Packages;
-  python = py.python;
-in
-py.buildPythonApplication {
+{ lib, python2, fetchFromGitHub }:
+
+python2.pkgs.buildPythonApplication {
   pname = "loxodo";
-  version = "0.20150124";
+  version = "unstable-2015-01-24";
 
-  src = fetchgit {
-    url = "https://github.com/sommer/loxodo.git";
+  src = fetchFromGitHub {
+    owner = "sommer";
+    repo = "loxodo";
     rev = "6c56efb4511fd6f645ad0f8eb3deafc8071c5795";
     sha256 = "1cg0dfcv57ps54f1a0ksib7hgkrbdi9q699w302xyyfyvjcb5dd2";
   };
 
-  propagatedBuildInputs = with py; [ wxPython ];
+  propagatedBuildInputs = with python2.pkgs; [ wxPython ];
 
   postInstall = ''
     mv $out/bin/loxodo.py $out/bin/loxodo
@@ -22,7 +20,7 @@ py.buildPythonApplication {
     [Desktop Entry]
     Type=Application
     Exec=$out/bin/loxodo
-    Icon=$out/lib/${python.libPrefix}/site-packages/resources/loxodo-icon.png
+    Icon=$out/lib/${python2.libPrefix}/site-packages/resources/loxodo-icon.png
     Name=Loxodo
     GenericName=Password Vault
     Categories=Application;Other;
@@ -34,5 +32,6 @@ py.buildPythonApplication {
     homepage = "https://www.christoph-sommer.de/loxodo/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/misc/metar/default.nix b/pkgs/applications/misc/metar/default.nix
index 50721a58636..07ac41f7281 100644
--- a/pkgs/applications/misc/metar/default.nix
+++ b/pkgs/applications/misc/metar/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv, fetchgit, curl }:
+{ lib, stdenv, fetchFromGitHub, curl }:
 
 stdenv.mkDerivation {
   pname = "metar";
-  version = "20161013.1";
+  version = "unstable-2017-02-17";
 
-  src = fetchgit {
-    url = "https://github.com/keesL/metar.git";
+  src = fetchFromGitHub {
+    owner = "keesL";
+    repo = "metar";
     rev = "20e9ca69faea330f6c2493b6829131c24cb55147";
     sha256 = "1fgrlnpasqf1ihh9y6zy6mzzybqx0lxvh7gmv03rjdb55dr42dxj";
   };
@@ -14,8 +15,6 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/keesL/metar";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.zalakain ];
     description = "Downloads weather reports and optionally decodes them";
     longDescription = ''
       METAR reports are meteorogical weather reports for aviation. Metar is a small
@@ -27,5 +26,7 @@ stdenv.mkDerivation {
       more work in the area of clouds need to be done, as support for Cumulus or
       Cumulunimbus is not yet decoded.
     '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ zalakain ];
   };
 }
diff --git a/pkgs/applications/misc/nwg-launchers/default.nix b/pkgs/applications/misc/nwg-launchers/default.nix
index 3f82db12422..24deebce178 100644
--- a/pkgs/applications/misc/nwg-launchers/default.nix
+++ b/pkgs/applications/misc/nwg-launchers/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nwg-launchers";
-  version = "0.5.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZtlAs7McVQKH626h2iOhjpVaiEHeaqs9ncZ6/KnGibg=";
+    sha256 = "sha256-QWDYy0TBxoYxfRAOtAEVM8wsPUi2SnzMXsu38guAURU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/procmail/default.nix b/pkgs/applications/misc/procmail/default.nix
index b9b62c41674..dafc73925b5 100644
--- a/pkgs/applications/misc/procmail/default.nix
+++ b/pkgs/applications/misc/procmail/default.nix
@@ -4,6 +4,11 @@ stdenv.mkDerivation rec {
   pname = "procmail";
   version = "3.22";
 
+  src = fetchurl {
+    url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-${version}.tar.gz";
+    sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
+  };
+
   patches = [
     ./CVE-2014-3618.patch
     (fetchurl {
@@ -16,20 +21,16 @@ stdenv.mkDerivation rec {
   # getline is defined differently in glibc now. So rename it.
   # Without the .PHONY target "make install" won't install anything on Darwin.
   postPatch = ''
-        sed -e "s%^RM.*$%#%" -i Makefile
-        sed -e "s%^BASENAME.*%\BASENAME=$out%" -i Makefile
-        sed -e "s%^LIBS=.*%LIBS=-lm%" -i Makefile
-        sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h
-        sed -e "3i\
+    sed -i Makefile \
+      -e "s%^RM.*$%#%" \
+      -e "s%^BASENAME.*%\BASENAME=$out%" \
+      -e "s%^LIBS=.*%LIBS=-lm%"
+    sed -e "s%getline%thisgetline%g" -i src/*.c src/*.h
+    sed -e "3i\
     .PHONY: install
     " -i Makefile
   '';
 
-  src = fetchurl {
-    url = "ftp://ftp.fu-berlin.de/pub/unix/mail/procmail/procmail-${version}.tar.gz";
-    sha256 = "05z1c803n5cppkcq99vkyd5myff904lf9sdgynfqngfk9nrpaz08";
-  };
-
   meta = with lib; {
     description = "Mail processing and filtering utility";
     homepage = "http://www.procmail.org/";
diff --git a/pkgs/applications/misc/rofi-menugen/default.nix b/pkgs/applications/misc/rofi-menugen/default.nix
index 7073be79c87..569ae6ef4cd 100644
--- a/pkgs/applications/misc/rofi-menugen/default.nix
+++ b/pkgs/applications/misc/rofi-menugen/default.nix
@@ -1,26 +1,28 @@
 { lib, stdenv, fetchFromGitHub, rofi, gnused }:
 
 stdenv.mkDerivation rec {
-  rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
   pname = "rofi-menugen";
-  version = "unstable-2015-12-28-${builtins.substring 0 7 rev}";
+  version = "unstable-2015-12-28";
 
   src = fetchFromGitHub {
     owner = "octotep";
     repo = "menugen";
-    inherit rev;
+    rev = "168efd2608fdb88b1aff3e0244bda8402169f207";
     sha256 = "09fk9i6crw772qlc5zld35pcff1jq4jcag0syial2q000fbpjx5m";
   };
-  patchPhase = ''
+
+  postPatch = ''
     sed -i -e "s|menugenbase|$out/bin/rofi-menugenbase|" menugen
     sed -i -e "s|rofi |${rofi}/bin/rofi |" menugen
     sed -i -e "s|sed |${gnused}/bin/sed |" menugenbase
   '';
+
   installPhase = ''
     mkdir -p $out/bin
     cp menugen $out/bin/rofi-menugen
     cp menugenbase $out/bin/rofi-menugenbase
   '';
+
   meta = with lib; {
     description = "Generates menu based applications using rofi";
     homepage = "https://github.com/octotep/menugen";
diff --git a/pkgs/applications/misc/stag/default.nix b/pkgs/applications/misc/stag/default.nix
index 0a7ebae14e7..f9c91d28f14 100644
--- a/pkgs/applications/misc/stag/default.nix
+++ b/pkgs/applications/misc/stag/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv, fetchgit, curses }:
+{ lib, stdenv, fetchFromGitHub, curses }:
 
 stdenv.mkDerivation {
   pname = "stag";
   version = "1.0";
 
-  src = fetchgit {
-    url = "https://github.com/seenaburns/stag.git";
+  src = fetchFromGitHub {
+    owner = "seenaburns";
+    repo = "stag";
     rev = "90e2964959ea8242349250640d24cee3d1966ad6";
     sha256 = "1yrzjhcwrxrxq5jj695wvpgb0pz047m88yq5n5ymkcw5qr78fy1v";
   };
@@ -16,11 +17,11 @@ stdenv.mkDerivation {
     make install PREFIX=$out
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/seenaburns/stag";
     description = "Terminal streaming bar graph passed through stdin";
-    license = lib.licenses.bsdOriginal;
-    maintainers = [ lib.maintainers.matthiasbeyer ];
-    platforms = lib.platforms.unix;
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ matthiasbeyer ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/xfontsel/default.nix b/pkgs/applications/misc/xfontsel/default.nix
index e5beca06b03..d056dd66e8d 100644
--- a/pkgs/applications/misc/xfontsel/default.nix
+++ b/pkgs/applications/misc/xfontsel/default.nix
@@ -3,6 +3,7 @@
 # That is why this expression is not inside pkgs.xorg
 
 { lib, stdenv, fetchurl, makeWrapper, libX11, pkg-config, libXaw }:
+
 stdenv.mkDerivation rec {
   pname = "xfontsel";
   version = "1.0.6";
@@ -13,6 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
+
   buildInputs = [ libX11 libXaw ];
 
   # Without this, it gets Xmu as a dependency, but without rpath entry
@@ -27,11 +29,11 @@ stdenv.mkDerivation rec {
       --set XAPPLRESDIR $out/share/X11/app-defaults
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://www.x.org/";
     description = "Allows testing the fonts available in an X server";
-    license = lib.licenses.free;
-    maintainers = with lib.maintainers; [ viric ];
-    platforms = with lib.platforms; linux ++ darwin;
+    license = licenses.free;
+    maintainers = with maintainers; [ viric ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/misc/xxkb/default.nix b/pkgs/applications/misc/xxkb/default.nix
index d6f96007bd0..d6514e58517 100644
--- a/pkgs/applications/misc/xxkb/default.nix
+++ b/pkgs/applications/misc/xxkb/default.nix
@@ -14,9 +14,6 @@
 , pkg-config
 }:
 
-assert svgSupport ->
-librsvg != null && glib != null && gdk-pixbuf != null && pkg-config != null;
-
 stdenv.mkDerivation rec {
   pname = "xxkb";
   version = "1.11.1";
@@ -27,6 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ imake gccmakedep ];
+
   buildInputs = [
     libX11
     libXt
@@ -49,11 +47,11 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install" "install.man" ];
 
-  meta = {
+  meta = with lib; {
     description = "A keyboard layout indicator and switcher";
     homepage = "http://xxkb.sourceforge.net/";
-    license = lib.licenses.artistic2;
-    maintainers = with lib.maintainers; [ rasendubi ];
-    platforms = lib.platforms.linux;
+    license = licenses.artistic2;
+    maintainers = with maintainers; [ rasendubi ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index c679b568736..0e1f67800a2 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -87,7 +87,7 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "10.5.10";
+  version = "11.0";
 
   lang = "en-US";
 
@@ -97,7 +97,7 @@ let
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"
       ];
-      sha256 = "0mvclh2f2lqj5kf98p0xdbaa6wxshwb8dkcna5sl561cw8nnayc2";
+      sha256 = "0938a9yjfg9qa9rv5acrmbgqq11mc8j0pvl1n64jrdz29crk6sj2";
     };
 
     i686-linux = fetchurl {
@@ -105,7 +105,7 @@ let
         "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
         "https://tor.eff.org/dist/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"
       ];
-      sha256 = "1g714abhh3ynmparb516z5syl7i64n7s5mga0zxb4598bhzi5zkg";
+      sha256 = "07v1ca66a69jl238qdq81mw654yffrcyq685y4rvv8xvx11fnzzp";
     };
   };
 in
diff --git a/pkgs/applications/networking/cluster/terranix/default.nix b/pkgs/applications/networking/cluster/terranix/default.nix
index d06393718a4..4338dddb49f 100644
--- a/pkgs/applications/networking/cluster/terranix/default.nix
+++ b/pkgs/applications/networking/cluster/terranix/default.nix
@@ -1,26 +1,37 @@
-{ lib, stdenv, fetchFromGitHub, ... }:
+{ stdenv, lib, fetchFromGitHub, jq, nix, ... }:
 
 stdenv.mkDerivation rec {
   pname = "terranix";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "mrVanDalo";
     repo = "terranix";
     rev = version;
-    sha256 = "sha256-3N4a5VhZqIgJW11w8oJKJ9T8mhfwEM33kEwV/zZkCs8=";
+    sha256 = "sha256-HDiyJGgyDUoLnpL8N+wDm3cM/vEfYYc/p4N1kKH/kLk=";
   };
 
   installPhase = ''
-    mkdir -p $out
+    mkdir -p $out/{bin,core,modules,lib}
     mv bin core modules lib $out/
+
+    mv $out/bin/terranix-doc-json $out/bin/.wrapper_terranix-doc-json
+
+    # manual wrapper because makeWrapper expectes executables
+    wrapper=$out/bin/terranix-doc-json
+    cat <<EOF>$wrapper
+    #!/usr/bin/env bash
+    export PATH=$PATH:${jq}/bin:${nix}/bin
+    $out/bin/.wrapper_terranix-doc-json "\$@"
+    EOF
+    chmod +x $wrapper
   '';
 
   meta = with lib; {
     description = "A NixOS like terraform-json generator";
     homepage = "https://terranix.org";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ mrVanDalo ];
   };
 
diff --git a/pkgs/applications/networking/msmtp/default.nix b/pkgs/applications/networking/msmtp/default.nix
index 2161e1a4ecc..3bcbdf0cf02 100644
--- a/pkgs/applications/networking/msmtp/default.nix
+++ b/pkgs/applications/networking/msmtp/default.nix
@@ -26,8 +26,8 @@ in stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook pkg-config texinfo ];
 
-  configureFlags =
-    [ "--sysconfdir=/etc" ] ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
+  configureFlags = [ "--sysconfdir=/etc" "--with-libgsasl" ]
+    ++ lib.optional stdenv.isDarwin [ "--with-macosx-keyring" ];
 
   postInstall = ''
     install -d $out/share/doc/${pname}/scripts
diff --git a/pkgs/applications/radio/kalibrate-rtl/default.nix b/pkgs/applications/radio/kalibrate-rtl/default.nix
index 53b58adb997..4fe9ad08678 100644
--- a/pkgs/applications/radio/kalibrate-rtl/default.nix
+++ b/pkgs/applications/radio/kalibrate-rtl/default.nix
@@ -1,18 +1,18 @@
-{ lib, stdenv, fetchgit, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, fftw, rtl-sdr, libusb1 }:
 
 stdenv.mkDerivation {
   pname = "kalibrate-rtl";
-  version = "2013-12-14";
+  version = "unstable-2013-12-14";
 
-  # There are no tags/releases, so use the latest commit from git master.
-  # Currently, the latest commit is from 2013-12-14.
-  src = fetchgit {
-    url = "https://github.com/steve-m/kalibrate-rtl.git";
+  src = fetchFromGitHub {
+    owner = "steve-m";
+    repo = "kalibrate-rtl";
     rev = "aae11c8a8dc79692a94ccfee39ba01e8c8c05d38";
     sha256 = "1spbfflkqnw9s8317ppsf7b1nnkicqsmaqsnz1zf8i49ix70i6kn";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
+
   buildInputs = [ fftw rtl-sdr libusb1 ];
 
   meta = with lib; {
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/steve-m/kalibrate-rtl";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/pkgs/applications/science/logic/prover9/default.nix b/pkgs/applications/science/logic/prover9/default.nix
index 2f57fca9729..aa01469bfbb 100644
--- a/pkgs/applications/science/logic/prover9/default.nix
+++ b/pkgs/applications/science/logic/prover9/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
 
   hardeningDisable = [ "format" ];
 
-  patchPhase = ''
+  postPatch = ''
     RM=$(type -tp rm)
     MV=$(type -tp mv)
     CP=$(type -tp cp)
@@ -31,16 +31,16 @@ stdenv.mkDerivation {
     cp bin/* $out/bin
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://www.cs.unm.edu/~mccune/mace4/";
-    license = "GPL";
+    license = licenses.gpl1;
     description = "Automated theorem prover for first-order and equational logic";
     longDescription = ''
       Prover9 is a resolution/paramodulation automated theorem prover
       for first-order and equational logic. Prover9 is a successor of
       the Otter Prover. This is the LADR command-line version.
     '';
-    platforms = lib.platforms.linux;
-    maintainers = [ ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/science/logic/redprl/default.nix b/pkgs/applications/science/logic/redprl/default.nix
index 05a7b63f556..eece691bfd7 100644
--- a/pkgs/applications/science/logic/redprl/default.nix
+++ b/pkgs/applications/science/logic/redprl/default.nix
@@ -1,25 +1,32 @@
-{ lib, stdenv, fetchgit, mlton }:
+{ lib, stdenv, fetchFromGitHub, mlton }:
+
 stdenv.mkDerivation {
   pname = "redprl";
   version = "unstable-2017-03-28";
 
-  src = fetchgit {
-    url = "https://github.com/RedPRL/sml-redprl.git";
+  src = fetchFromGitHub {
+    owner = "RedPRL";
+    repo = "sml-redprl";
     rev = "bdf027de732e4a8d10f9f954389dfff0c822f18b";
-    sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
     fetchSubmodules = true;
+    sha256 = "0cihwnd78d3ksxp6mppifm7xpi3fsii5mixvicajy87ggw8z305c";
   };
+
   buildInputs = [ mlton ];
-  patchPhase = ''
+
+  postPatch = ''
     patchShebangs ./script/
   '';
+
   buildPhase = ''
     ./script/mlton.sh
   '';
+
   installPhase = ''
     mkdir -p $out/bin
     mv ./bin/redprl $out/bin
   '';
+
   meta = with lib; {
     description = "A proof assistant for Nominal Computational Type Theory";
     homepage = "http://www.redprl.org/";
diff --git a/pkgs/applications/science/machine-learning/shogun/default.nix b/pkgs/applications/science/machine-learning/shogun/default.nix
index a7010966c26..911d0043ed2 100644
--- a/pkgs/applications/science/machine-learning/shogun/default.nix
+++ b/pkgs/applications/science/machine-learning/shogun/default.nix
@@ -1,13 +1,38 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, fetchurl, cmake, ctags, swig
-# data, compression
-, bzip2, curl, hdf5, json_c, xz, lzo, protobuf, snappy
-# maths
-, blas, lapack, eigen, nlopt, lp_solve, colpack, glpk
-# libraries
-, libarchive, libxml2
-# extra support
-, pythonSupport ? true, pythonPackages ? null
-, opencvSupport ? false, opencv ? null
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, fetchurl
+  # build
+, cmake
+, ctags
+, pythonPackages
+, swig
+  # math
+, eigen
+, blas
+, lapack
+, glpk
+  # data
+, protobuf
+, json_c
+, libxml2
+, hdf5
+, curl
+  # compression
+, libarchive
+, bzip2
+, xz
+, snappy
+, lzo
+  # more math
+, nlopt
+, lp_solve
+, colpack
+  # extra support
+, pythonSupport ? true
+, opencvSupport ? false
+, opencv ? null
 , withSvmLight ? false
 }:
 
@@ -19,8 +44,10 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 let
   pname = "shogun";
   version = "6.1.4";
+
   rxcppVersion = "4.0.0";
   gtestVersion = "1.8.0";
+
   srcs = {
     toolbox = fetchFromGitHub {
       owner = pname + "-toolbox";
@@ -29,7 +56,8 @@ let
       sha256 = "05s9dclmk7x5d7wnnj4qr6r6c827m72a44gizcv09lxr28pr9inz";
       fetchSubmodules = true;
     };
-    # we need the packed archive
+
+    # The CMake external projects expect the packed archives
     rxcpp = fetchurl {
       url = "https://github.com/Reactive-Extensions/RxCpp/archive/v${rxcppVersion}.tar.gz";
       sha256 = "0y2isr8dy2n1yjr9c5570kpc9lvdlch6jv0jvw000amwn5d3krsh";
@@ -42,54 +70,90 @@ let
 in
 
 stdenv.mkDerivation rec {
-
   inherit pname version;
 
-  src = srcs.toolbox;
-
-  postUnpack = ''
-    mkdir -p $sourceRoot/third_party/{rxcpp,gtest}
-    ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
-    ln -s ${srcs.gtest} $sourceRoot/third_party/gtest/release-${gtestVersion}.tar.gz
-  '';
+  outputs = [ "out" "dev" "doc" ];
 
-  # broken
-  doCheck = false;
+  src = srcs.toolbox;
 
   patches = [
+    # Fix compile errors with json-c
+    # https://github.com/shogun-toolbox/shogun/pull/4104
     (fetchpatch {
-      url = "https://github.com/awild82/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
+      url = "https://github.com/shogun-toolbox/shogun/commit/365ce4c4c700736d2eec8ba6c975327a5ac2cd9b.patch";
       sha256 = "158hqv4xzw648pmjbwrhxjp7qcppqa7kvriif87gn3zdn711c49s";
     })
+
+    # Fix compile errors with GCC 9+
+    # https://github.com/shogun-toolbox/shogun/pull/4811
+    (fetchpatch {
+      url = "https://github.com/shogun-toolbox/shogun/commit/c8b670be4790e0f06804b048a6f3d77c17c3ee95.patch";
+      sha256 = "sha256-MxsR3Y2noFQevfqWK3nmX5iK4OVWeKBl5tfeDNgjcXk=";
+    })
+    (fetchpatch {
+      url = "https://github.com/shogun-toolbox/shogun/commit/5aceefd9fb0e2132c354b9a0c0ceb9160cc9b2f7.patch";
+      sha256 = "sha256-AgJJKQA8vc5oKaTQDqMdwBR4hT4sn9+uW0jLe7GteJw=";
+    })
+
+    # Fix compile errors with Eigen 3.4
+    ./eigen-3.4.patch
+
   ] ++ lib.optional (!withSvmLight) ./svmlight-scrubber.patch;
 
-  CCACHE_DISABLE="1";
-  CCACHE_DIR=".ccache";
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = with lib; [
-      blas lapack bzip2 colpack curl ctags eigen hdf5 json_c lp_solve xz lzo
-      protobuf nlopt snappy swig (libarchive.dev) libxml2 lapack glpk
-    ]
-    ++ optionals (pythonSupport) (with pythonPackages; [ python ply numpy ])
-    ++ optional  (opencvSupport) opencv;
-
-  NIX_CFLAGS_COMPILE="-faligned-new";
-
-  cmakeFlags =
-  let
-      onOff = b: if b then "ON" else "OFF";
-      flag = n: b: "-D"+n+"="+onOff b;
-  in
-  with lib; [
-    (flag "ENABLE_TESTING" doCheck)
-    (flag "BUILD_META_EXAMPLES" doCheck)
-    (flag "CMAKE_VERBOSE_MAKEFILE:BOOL" doCheck)
-    (flag "PythonModular" pythonSupport)
-    (flag "OpenCV" opencvSupport)
-    (flag "USE_SVMLIGHT" withSvmLight)
+  nativeBuildInputs = [ cmake swig ctags ]
+    ++ (with pythonPackages; [ python jinja2 ply ]);
+
+  buildInputs = [
+    eigen
+    blas
+    lapack
+    glpk
+    protobuf
+    json_c
+    libxml2
+    hdf5
+    curl
+    libarchive
+    bzip2
+    xz
+    snappy
+    lzo
+    nlopt
+    lp_solve
+    colpack
+  ] ++ lib.optionals pythonSupport (with pythonPackages; [ python numpy ])
+    ++ lib.optional opencvSupport opencv;
+
+  cmakeFlags = let
+    enableIf = cond: if cond then "ON" else "OFF";
+  in [
+    "-DBUILD_META_EXAMPLES=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_CPLEX=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_Mosek=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_TFLogger=ON"
+    "-DCMAKE_DISABLE_FIND_PACKAGE_ViennaCL=ON"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+    "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;TrainedModelSerialization'"  # Sporadic segfault
+    "-DENABLE_TESTING=${enableIf doCheck}"
+    "-DDISABLE_META_INTEGRATION_TESTS=ON"
+    "-DTRAVIS_DISABLE_META_CPP=ON"
+    "-DPythonModular=${enableIf pythonSupport}"
+    "-DOpenCV=${enableIf opencvSupport}"
+    "-DUSE_SVMLIGHT=${enableIf withSvmLight}"
   ];
 
+  CXXFLAGS = "-faligned-new";
+
+  doCheck = true;
+
+  postUnpack = ''
+    mkdir -p $sourceRoot/third_party/{rxcpp,GoogleMock}
+    ln -s ${srcs.rxcpp} $sourceRoot/third_party/rxcpp/v${rxcppVersion}.tar.gz
+    ln -s ${srcs.gtest} $sourceRoot/third_party/GoogleMock/release-${gtestVersion}.tar.gz
+  '';
+
   postPatch = ''
     # Fix preprocessing SVMlight code
     sed -i \
@@ -106,10 +170,17 @@ stdenv.mkDerivation rec {
     ./scripts/light-scrubber.sh
   '';
 
+  postInstall = ''
+    mkdir -p $doc/share/doc/shogun/examples
+    mv $out/share/shogun/examples/cpp $doc/share/doc/shogun/examples
+    cp ../examples/undocumented/libshogun/*.cpp $doc/share/doc/shogun/examples/cpp
+    rm -r $out/share
+  '';
+
   meta = with lib; {
     description = "A toolbox which offers a wide range of efficient and unified machine learning methods";
     homepage = "http://shogun-toolbox.org/";
     license = if withSvmLight then licenses.unfree else licenses.gpl3Plus;
-    maintainers = with maintainers; [ edwtjo ];
+    maintainers = with maintainers; [ edwtjo smancill ];
   };
 }
diff --git a/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch b/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
new file mode 100644
index 00000000000..863bd75918b
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/shogun/eigen-3.4.patch
@@ -0,0 +1,74 @@
+From: Sebastián Mancilla <smancill@smancill.dev>
+Subject: [PATCH] Fix compile errors when using Eigen 3.4
+
+---
+ .../machine/gp/MultiLaplaceInferenceMethod.cpp | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+index 2e27678d2..60050afea 100644
+--- a/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
++++ b/src/shogun/machine/gp/MultiLaplaceInferenceMethod.cpp
+@@ -84,9 +84,9 @@ class CMultiPsiLine : public func_base
+ 		float64_t result=0;
+ 		for(index_t bl=0; bl<C; bl++)
+ 		{
+-			eigen_f.block(bl*n,0,n,1)=K*alpha->block(bl*n,0,n,1)*CMath::exp(log_scale*2.0);
+-			result+=alpha->block(bl*n,0,n,1).dot(eigen_f.block(bl*n,0,n,1))/2.0;
+-			eigen_f.block(bl*n,0,n,1)+=eigen_m;
++			eigen_f.segment(bl*n,n)=K*alpha->segment(bl*n,n)*CMath::exp(log_scale*2.0);
++			result+=alpha->segment(bl*n,n).dot(eigen_f.segment(bl*n,n))/2.0;
++			eigen_f.segment(bl*n,n)+=eigen_m;
+ 		}
+ 
+ 		// get first and second derivatives of log likelihood
+@@ -272,7 +272,7 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ 	{
+ 		Map<VectorXd> alpha(m_alpha.vector, m_alpha.vlen);
+ 		for(index_t bl=0; bl<C; bl++)
+-			eigen_mu.block(bl*n,0,n,1)=eigen_ktrtr*CMath::exp(m_log_scale*2.0)*alpha.block(bl*n,0,n,1);
++			eigen_mu.segment(bl*n,n)=eigen_ktrtr*CMath::exp(m_log_scale*2.0)*alpha.segment(bl*n,n);
+ 
+ 		//alpha'*(f-m)/2.0
+ 		Psi_New=alpha.dot(eigen_mu)/2.0;
+@@ -316,7 +316,7 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ 
+ 		for(index_t bl=0; bl<C; bl++)
+ 		{
+-			VectorXd eigen_sD=eigen_dpi.block(bl*n,0,n,1).cwiseSqrt();
++			VectorXd eigen_sD=eigen_dpi.segment(bl*n,n).cwiseSqrt();
+ 			LLT<MatrixXd> chol_tmp((eigen_sD*eigen_sD.transpose()).cwiseProduct(eigen_ktrtr*CMath::exp(m_log_scale*2.0))+
+ 				MatrixXd::Identity(m_ktrtr.num_rows, m_ktrtr.num_cols));
+ 			MatrixXd eigen_L_tmp=chol_tmp.matrixU();
+@@ -341,11 +341,11 @@ void CMultiLaplaceInferenceMethod::update_alpha()
+ 		VectorXd tmp2=m_tmp.array().rowwise().sum();
+ 
+ 		for(index_t bl=0; bl<C; bl++)
+-			eigen_b.block(bl*n,0,n,1)+=eigen_dpi.block(bl*n,0,n,1).cwiseProduct(eigen_mu.block(bl*n,0,n,1)-eigen_mean_bl-tmp2);
++			eigen_b.segment(bl*n,n)+=eigen_dpi.segment(bl*n,n).cwiseProduct(eigen_mu.segment(bl*n,n)-eigen_mean_bl-tmp2);
+ 
+ 		Map<VectorXd> &eigen_c=eigen_W;
+ 		for(index_t bl=0; bl<C; bl++)
+-			eigen_c.block(bl*n,0,n,1)=eigen_E.block(0,bl*n,n,n)*(eigen_ktrtr*CMath::exp(m_log_scale*2.0)*eigen_b.block(bl*n,0,n,1));
++			eigen_c.segment(bl*n,n)=eigen_E.block(0,bl*n,n,n)*(eigen_ktrtr*CMath::exp(m_log_scale*2.0)*eigen_b.segment(bl*n,n));
+ 
+ 		Map<MatrixXd> c_tmp(eigen_c.data(),n,C);
+ 
+@@ -409,7 +409,7 @@ float64_t CMultiLaplaceInferenceMethod::get_derivative_helper(SGMatrix<float64_t
+ 	{
+ 		result+=((eigen_E.block(0,bl*n,n,n)-eigen_U.block(0,bl*n,n,n).transpose()*eigen_U.block(0,bl*n,n,n)).array()
+ 			*eigen_dK.array()).sum();
+-		result-=(eigen_dK*eigen_alpha.block(bl*n,0,n,1)).dot(eigen_alpha.block(bl*n,0,n,1));
++		result-=(eigen_dK*eigen_alpha.segment(bl*n,n)).dot(eigen_alpha.segment(bl*n,n));
+ 	}
+ 
+ 	return result/2.0;
+@@ -489,7 +489,7 @@ SGVector<float64_t> CMultiLaplaceInferenceMethod::get_derivative_wrt_mean(
+ 		result[i]=0;
+ 		//currently only compute the explicit term
+ 		for(index_t bl=0; bl<C; bl++)
+-			result[i]-=eigen_alpha.block(bl*n,0,n,1).dot(eigen_dmu);
++			result[i]-=eigen_alpha.segment(bl*n,n).dot(eigen_dmu);
+ 	}
+ 
+ 	return result;
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index f7756f33499..bbe8f6f9f53 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -19,11 +19,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gromacs";
-  version = "2021.3";
+  version = "2021.4";
 
   src = fetchurl {
     url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
-    sha256 = "4QmFbsREdo373kHzBZ4xI6vbj+Vsozsag/Me1FdaHMY=";
+    sha256 = "07ds8abxq0k7vfpjvxb8in3fhb6lz0pbdzbmlidyzaw37qz8lw6b";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/terminal-emulators/mrxvt/default.nix b/pkgs/applications/terminal-emulators/mrxvt/default.nix
index c9f68ffc6bd..ba6c6ab87c1 100644
--- a/pkgs/applications/terminal-emulators/mrxvt/default.nix
+++ b/pkgs/applications/terminal-emulators/mrxvt/default.nix
@@ -16,8 +16,12 @@ stdenv.mkDerivation rec {
   pname = "mrxvt";
   version = "0.5.4";
 
-  buildInputs =
-    [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
+  src = fetchurl {
+    url = "mirror://sourceforge/materm/mrxvt-${version}.tar.gz";
+    sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
+  };
+
+  buildInputs = [ libX11 libXft libXi xorgproto libSM libICE freetype pkg-config which ];
 
   configureFlags = [
     "--with-x"
@@ -34,11 +38,6 @@ stdenv.mkDerivation rec {
     NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I${freetype.dev}/include/freetype2";
   '';
 
-  src = fetchurl {
-    url = "mirror://sourceforge/materm/mrxvt-${version}.tar.gz";
-    sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
-  };
-
   meta = with lib; {
     description = "Lightweight multitabbed feature-rich X11 terminal emulator";
     longDescription = "
@@ -48,6 +47,7 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/materm";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ ];
     knownVulnerabilities = [
       "Usage of ANSI escape sequences causes unexpected newline-termination, leading to unexpected command execution (https://www.openwall.com/lists/oss-security/2021/05/17/1)"
     ];
diff --git a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
index d4a3b9a742a..c7510568e26 100644
--- a/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
+++ b/pkgs/applications/terminal-emulators/rxvt-unicode-plugins/urxvt-theme-switch/default.nix
@@ -1,16 +1,15 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
   pname = "urxvt-theme-switch";
-  version = "unstable-2014-12-21_rev${builtins.substring 0 1 rev}";
+  version = "unstable-2014-12-21";
 
   dontPatchShebangs = true;
 
   src = fetchFromGitHub {
     owner = "felixr";
     repo = "urxvt-theme-switch";
-    inherit rev;
+    rev = "cfcbcc3dd5a5b09a3fec0f6a1fea95f4a36a48c4";
     sha256 = "0x27m1vdqprn3lqpwgxvffill7prmaj6j9rhgvkvi13mzl5wmlli";
   };
 
@@ -25,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/felixr/urxvt-theme-switch";
     license = "CCBYNC";
     maintainers = with maintainers; [ ];
-    platforms = with platforms; unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/video/cinelerra/default.nix b/pkgs/applications/video/cinelerra/default.nix
index 35138ec739f..0ce0623ec9d 100644
--- a/pkgs/applications/video/cinelerra/default.nix
+++ b/pkgs/applications/video/cinelerra/default.nix
@@ -63,45 +63,46 @@ stdenv.mkDerivation {
   preBuild = ''
     make -C cinelerra versioninfo.h
   '';
+
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ automake autoconf libtool pkg-config file intltool ];
-  buildInputs =
-    [
-      faad2
-      faac
-      a52dec
-      alsa-lib
-      fftw
-      lame
-      libavc1394
-      libiec61883
-      libraw1394
-      libsndfile
-      libvorbis
-      libogg
-      libjpeg
-      libtiff
-      freetype
-      mjpegtools
-      x264
-      gettext
-      openexr
-      libXext
-      libXxf86vm
-      libXv
-      libXi
-      libX11
-      libXft
-      xorgproto
-      libtheora
-      libpng
-      libdv
-      libuuid
-      nasm
-      perl
-      fontconfig
-    ];
+
+  buildInputs = [
+    faad2
+    faac
+    a52dec
+    alsa-lib
+    fftw
+    lame
+    libavc1394
+    libiec61883
+    libraw1394
+    libsndfile
+    libvorbis
+    libogg
+    libjpeg
+    libtiff
+    freetype
+    mjpegtools
+    x264
+    gettext
+    openexr
+    libXext
+    libXxf86vm
+    libXv
+    libXi
+    libX11
+    libXft
+    xorgproto
+    libtheora
+    libpng
+    libdv
+    libuuid
+    nasm
+    perl
+    fontconfig
+  ];
 
   meta = with lib; {
     description = "Professional video editing and compositing environment (community version)";
diff --git a/pkgs/applications/video/omxplayer/default.nix b/pkgs/applications/video/omxplayer/default.nix
index f24a9914d0f..e01d0a2f49c 100644
--- a/pkgs/applications/video/omxplayer/default.nix
+++ b/pkgs/applications/video/omxplayer/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, fetchFromGitHub
 , fetchurl
 , raspberrypifw
 , pcre
@@ -69,26 +70,31 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "omxplayer";
-  version = "20130328-fbee325dc2";
-  src = fetchurl {
-    url = "https://github.com/huceke/omxplayer/tarball/fbee325dc2";
-    name = "omxplayer-${version}.tar.gz";
+  version = "unstable-2013-03-28";
+
+  src = fetchFromGitHub {
+    owner = "huceke";
+    repo = "omxplayer";
+    rev = "fbee325dc20441138d04d8d2022ad85956302e97";
     sha256 = "0fkvv8il7ffqxki2gp8cxa5shh6sz9jsy5vv3f4025g4gss6afkg";
   };
-  patchPhase = ''
+
+  postPatch = ''
     sed -i 1d Makefile
     export INCLUDES="-I${raspberrypifw}/include/interface/vcos/pthreads -I${raspberrypifw}/include/interface/vmcs_host/linux/"
   '';
+
   installPhase = ''
     mkdir -p $out/bin
     cp omxplayer.bin $out/bin
   '';
+
   buildInputs = [ raspberrypifw ffmpeg pcre boost freetype zlib ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/huceke/omxplayer";
     description = "Commandline OMX player for the Raspberry Pi";
-    license = lib.licenses.gpl2Plus;
-    platforms = lib.platforms.arm;
+    license = licenses.gpl2Plus;
+    platforms = platforms.arm;
   };
 }
diff --git a/pkgs/applications/video/subdl/default.nix b/pkgs/applications/video/subdl/default.nix
index 1f0b424831b..95f7be2cbca 100644
--- a/pkgs/applications/video/subdl/default.nix
+++ b/pkgs/applications/video/subdl/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "subdl";
-  version = "0.0pre.2017.11.06";
+  version = "unstable-2017-11.06";
 
   src = fetchFromGitHub {
     owner = "alexanderwink";
@@ -11,6 +11,12 @@ stdenv.mkDerivation {
     sha256 = "0kmk5ck1j49q4ww0lvas2767kwnzhkq0vdwkmjypdx5zkxz73fn8";
   };
 
+  buildInputs = [ python3 ];
+
+  installPhase = ''
+    install -vD subdl $out/bin/subdl
+  '';
+
   meta = {
     homepage = "https://github.com/alexanderwink/subdl";
     description = "A command-line tool to download subtitles from opensubtitles.org";
@@ -18,10 +24,4 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.exfalso ];
   };
-
-  buildInputs = [ python3 ];
-
-  installPhase = ''
-    install -vD subdl $out/bin/subdl
-  '';
 }
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 277c06438f5..ebfaac0bde1 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.37.0";
+  version = "1.37.2";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "1gxbgn61qv4zhzxwdd917hywwicr3jand34ghjzha35r44lmyzgz";
+    sha256 = "1svhi9xf71zrk843bnwkpmq4iaaln07dpfrdvq0vdqhj5xvbx47g";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
diff --git a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix b/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
index 7b9dc2de485..75cf99caf86 100644
--- a/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
+++ b/pkgs/applications/virtualization/driver/win-pvdrivers/default.nix
@@ -1,11 +1,12 @@
-{ lib, stdenv, fetchgit }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
   pname = "win-pvdrivers";
   version = "unstable-2015-07-01";
 
-  src = fetchgit {
-    url = "https://github.com/ts468/win-pvdrivers";
+  src = fetchFromGitHub {
+    owner = "ts468";
+    repo = "win-pvdrivers";
     rev = "3054d645fc3ee182bea3e97ff01869f01cc3637a";
     sha256 = "6232ca2b7c9af874abbcb9262faf2c74c819727ed2eb64599c790879df535106";
   };
@@ -23,7 +24,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Xen Subproject: Windows PV Driver";
     homepage = "http://xenproject.org/downloads/windows-pv-drivers.html";
-    maintainers = [ maintainers.tstrobel ];
+    maintainers = with maintainers; [ tstrobel ];
     platforms = platforms.linux;
     license = licenses.bsd3;
   };
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index 37fad321cad..e8d78c5bb4a 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -15,11 +15,11 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.8.3";
+  version = "3.8.4";
 
   src = fetchurl {
     url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
-    sha256 = "sha256-LiLrnuG3P91RuHgxSfDk2DwNLYoMHt9gNBV9UO7vuDU=";
+    sha256 = "sha256-y5Xm1osNIPK4fWDyOjv3B7fT6HzuDdSqQ4D49IGlfrw=";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index c139030ea97..3a05008dacb 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -12,7 +12,7 @@
       else "";
   in "${if matched == null then base else builtins.head matched}${appendShort}";
 in
-{ url, rev ? "HEAD", md5 ? "", sha256 ? "", leaveDotGit ? deepClone
+{ url, rev ? "HEAD", md5 ? "", sha256 ? "", hash ? "", leaveDotGit ? deepClone
 , fetchSubmodules ? true, deepClone ? false
 , branchName ? null
 , name ? urlToName url rev
@@ -54,6 +54,8 @@ assert deepClone -> leaveDotGit;
 
 if md5 != "" then
   throw "fetchgit does not support md5 anymore, please use sha256"
+else if hash != "" && sha256 != "" then
+  throw "Only one of sha256 or hash can be set"
 else
 stdenvNoCC.mkDerivation {
   inherit name;
@@ -63,9 +65,14 @@ stdenvNoCC.mkDerivation {
   nativeBuildInputs = [ git ]
     ++ lib.optionals fetchLFS [ git-lfs ];
 
-  outputHashAlgo = "sha256";
+  outputHashAlgo = if hash != "" then null else "sha256";
   outputHashMode = "recursive";
-  outputHash = sha256;
+  outputHash = if hash != "" then
+    hash
+  else if sha256 != "" then
+    sha256
+  else
+    lib.fakeSha256;
 
   inherit url rev leaveDotGit fetchLFS fetchSubmodules deepClone branchName postFetch;
 
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 58cdeb269d5..2966675be7c 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, stdenvNoCC, lndir, runtimeShell }:
+{ lib, stdenv, stdenvNoCC, lndir, runtimeShell, shellcheck }:
 
 rec {
 
@@ -111,9 +111,10 @@ rec {
     , executable ? false # run chmod +x ?
     , destination ? ""   # relative path appended to $out eg "/bin/foo"
     , checkPhase ? ""    # syntax checks, e.g. for scripts
+    , meta ? { }
     }:
     runCommand name
-      { inherit text executable checkPhase;
+      { inherit text executable checkPhase meta;
         passAsFile = [ "text" ];
         # Pointless to do this on a remote machine.
         preferLocalBuild = true;
@@ -249,6 +250,60 @@ rec {
       '';
     };
 
+  /*
+   * Similar to writeShellScriptBin and writeScriptBin.
+   * Writes an executable Shell script to /nix/store/<store path>/bin/<name> and
+   * checks its syntax with shellcheck and the shell's -n option.
+   * Automatically includes sane set of shellopts (errexit, nounset, pipefail)
+   * and handles creation of PATH based on runtimeInputs
+   *
+   * Note that the checkPhase uses stdenv.shell for the test run of the script,
+   * while the generated shebang uses runtimeShell. If, for whatever reason,
+   * those were to mismatch you might lose fidelity in the default checks.
+   *
+   * Example:
+   * # Writes my-file to /nix/store/<store path>/bin/my-file and makes executable.
+   * writeShellApplication {
+   *   name = "my-file";
+   *   runtimeInputs = [ curl w3m ];
+   *   text = ''
+   *     curl -s 'https://nixos.org' | w3m -dump -T text/html
+   *    '';
+   * }
+  */
+  writeShellApplication =
+    { name
+    , text
+    , runtimeInputs ? [ ]
+    , checkPhase ? null
+    }:
+    writeTextFile {
+      inherit name;
+      executable = true;
+      destination = "/bin/${name}";
+      text = ''
+        #!${runtimeShell}
+        set -o errexit
+        set -o nounset
+        set -o pipefail
+
+        export PATH="${lib.makeBinPath runtimeInputs}:$PATH"
+
+        ${text}
+      '';
+
+      checkPhase =
+        if checkPhase == null then ''
+          runHook preCheck
+          ${stdenv.shell} -n $out/bin/${name}
+          ${shellcheck}/bin/shellcheck $out/bin/${name}
+          runHook postCheck
+        ''
+        else checkPhase;
+
+      meta.mainProgram = name;
+    };
+
   # Create a C binary
   writeCBin = name: code:
     runCommandCC name
diff --git a/pkgs/development/embedded/platformio/core.nix b/pkgs/development/embedded/platformio/core.nix
index aa495abda55..fdd9580ed1d 100644
--- a/pkgs/development/embedded/platformio/core.nix
+++ b/pkgs/development/embedded/platformio/core.nix
@@ -19,6 +19,27 @@ let
         };
       });
 
+      click = super.click.overridePythonAttrs (oldAttrs: rec {
+        version = "8.0.3";
+        src = fetchFromGitHub {
+          owner = "pallets";
+          repo = "click";
+          rev = version;
+          sha256 = "0pxvxgfhqjgsjbgfnilqjki1l24r0rdfd98cl77i71yqdd2f497g";
+        };
+      });
+
+      starlette = super.starlette.overridePythonAttrs (oldAttrs: rec {
+        version = "0.17.0";
+        src = fetchFromGitHub {
+          owner = "encode";
+          repo = "starlette";
+          rev = version;
+          sha256 = "1g76qpvqzivmwll5ir4bf45jx5kilnkadvy6b7qjisvr402i3qmw";
+        };
+        disabledTestPaths = [];
+      });
+
       uvicorn = super.uvicorn.overridePythonAttrs (oldAttrs: rec {
         version = "0.15.0";
         src = fetchFromGitHub {
diff --git a/pkgs/development/embedded/platformio/default.nix b/pkgs/development/embedded/platformio/default.nix
index 35615a4de1f..ab2b989696c 100644
--- a/pkgs/development/embedded/platformio/default.nix
+++ b/pkgs/development/embedded/platformio/default.nix
@@ -4,14 +4,14 @@
 let
   callPackage = newScope self;
 
-  version = "5.2.1";
+  version = "5.2.3";
 
   # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
   src = fetchFromGitHub {
     owner = "platformio";
     repo = "platformio-core";
     rev = "v${version}";
-    sha256 = "1kmwr21djcz1qnpbsk0za244rp6rkh0vp6wss1vjks4waambiqnl";
+    sha256 = "0wbmwawn25srkyrd6hwrgli1himzsj08vbm76fgnpqdc84n78ckl";
   };
 
   self = {
diff --git a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
index 156600595f9..e8239150f38 100644
--- a/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
+++ b/pkgs/development/embedded/platformio/use-local-spdx-license-list.patch
@@ -1,8 +1,8 @@
 diff --git a/platformio/package/manifest/schema.py b/platformio/package/manifest/schema.py
-index addc4c5..514b0ad 100644
+index 416dccfd..896c3649 100644
 --- a/platformio/package/manifest/schema.py
 +++ b/platformio/package/manifest/schema.py
-@@ -253,9 +253,4 @@ class ManifestSchema(BaseSchema):
+@@ -253,9 +253,6 @@ class ManifestSchema(BaseSchema):
      @staticmethod
      @memoized(expire="1h")
      def load_spdx_licenses():
@@ -12,4 +12,6 @@ index addc4c5..514b0ad 100644
 -            "v%s/json/licenses.json" % version
 -        )
 -        return json.loads(fetch_remote_content(spdx_data_url))
-+        return json.load(open("@SPDX_LICENSE_LIST_DATA@/json/licenses.json"))
++        with open("@SPDX_LICENSE_LIST_DATA@/json/licenses.json") as f:
++            spdx = json.load(f)
++        return spdx
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index 5fc968ccdde..1418a8d6fe8 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -935,7 +935,11 @@ self: super: builtins.intersectAttrs super {
 
   rel8 = addTestToolDepend super.rel8 pkgs.postgresql;
 
-  cachix = generateOptparseApplicativeCompletion "cachix" super.cachix;
+  cachix = generateOptparseApplicativeCompletion "cachix" (super.cachix.override { nix = pkgs.nix_2_3; });
+
+  hercules-ci-agent = super.hercules-ci-agent.override { nix = pkgs.nix_2_3; };
+  hercules-ci-cnix-expr = super.hercules-ci-cnix-expr.override { nix = pkgs.nix_2_3; };
+  hercules-ci-cnix-store = super.hercules-ci-cnix-store.override { nix = pkgs.nix_2_3; };
 
   # Enable extra optimisations which increase build time, but also
   # later compiler performance, so we should do this for user's benefit.
diff --git a/pkgs/development/interpreters/bqn/cbqn/default.nix b/pkgs/development/interpreters/bqn/cbqn/default.nix
index 6bdcca12745..44d63ace738 100644
--- a/pkgs/development/interpreters/bqn/cbqn/default.nix
+++ b/pkgs/development/interpreters/bqn/cbqn/default.nix
@@ -11,21 +11,21 @@ let
     name = "cbqn-bytecode-files";
     owner = "dzaima";
     repo = "CBQN";
-    rev = "4d23479cdbd5ac6eb512c376ade58077b814b2b7";
-    hash = "sha256-MTvg4lOB26bqvJTqV71p4Y4qDjTYaOE40Jk4Sle/hsY=";
+    rev = "db686e89d4d2e9bfac3dddf306dff890135b2de1";
+    hash = "sha256-RJ751jCsAGjqQx3V5S5Uc611n+/TBs6G2o0q26x98NM=";
   };
 in
 assert genBytecode -> ((bqn-path != null) && (mbqn-source != null));
 
 stdenv.mkDerivation rec {
   pname = "cbqn" + lib.optionalString (!genBytecode) "-standalone";
-  version = "0.pre+date=2021-10-20";
+  version = "0.pre+date=2021-11-06";
 
   src = fetchFromGitHub {
     owner = "dzaima";
     repo = "CBQN";
-    rev = "f50b8ab503d05cccb6ff61df52f2625df3292a9e";
-    hash = "sha256-pxToXVIKYS9P2TnGMGmKfJmAP54GVPVls9bm9tmS21s=";
+    rev = "cd866e1e45ce0f22bfacd25565ab912c06cb040f";
+    hash = "sha256-XuowrGDgrttRL/SY5si0nqHMKEidSNrQuquxNdBCW8o=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
index 86a07e8e984..fd0ff51c0eb 100644
--- a/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/mlochbaum-bqn/default.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "bqn";
-  version = "0.pre+date=2021-10-21";
+  version = "0.pre+date=2021-11-08";
 
   src = fetchFromGitHub {
     owner = "mlochbaum";
     repo = "BQN";
-    rev = "e4edda2a8cf2309b77808cc749a8e6ff8a282b17";
-    hash = "sha256-wCpwFV9AI0bfDQX9ARWHkTICmNnRu4vBACXBTM/RNeM=";
+    rev = "5c68173276c1c1b136a7eda3ad8f4423ab0ee9d0";
+    hash = "sha256-e0P1I8I/J41Hk7Edb4uKCdx30Azkiheq014kSZzJ8yg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 652e828eb5f..17503fc66ec 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.17.2";
+  version = "0.17.3";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "sha256-rboyRancRTyrSY+13Blrz7OsIzclDS4X4hkHGD6cpyk=";
+    sha256 = "sha256-mm1vFXaQEljsU7Yg+3zDF2MBsc/ePSVF9LezeMWCyL0=";
   };
 
   vendorSha256 = "sha256-AYoespfzFLP/jIIxbw5K653wc7sSfLY8K7di8GZ64wA=";
diff --git a/pkgs/development/libraries/gexiv2/default.nix b/pkgs/development/libraries/gexiv2/default.nix
index a556b64f1d3..0cf50566004 100644
--- a/pkgs/development/libraries/gexiv2/default.nix
+++ b/pkgs/development/libraries/gexiv2/default.nix
@@ -55,13 +55,15 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  preCheck = ''
+  preCheck = let
+    libSuffix = if stdenv.isDarwin then "2.dylib" else "so.2";
+  in ''
     # Our gobject-introspection patches make the shared library paths absolute
     # in the GIR files. When running unit tests, the library is not yet installed,
     # though, so we need to replace the absolute path with a local one during build.
     # We are using a symlink that will be overridden during installation.
     mkdir -p $out/lib
-    ln -s $PWD/gexiv2/libgexiv2.so.2 $out/lib/libgexiv2.so.2
+    ln -s $PWD/gexiv2/libgexiv2.${libSuffix} $out/lib/libgexiv2.${libSuffix}
   '';
 
   passthru = {
diff --git a/pkgs/development/libraries/gtkimageview/default.nix b/pkgs/development/libraries/gtkimageview/default.nix
index 1e910e3bcf4..fb63d4f00c1 100644
--- a/pkgs/development/libraries/gtkimageview/default.nix
+++ b/pkgs/development/libraries/gtkimageview/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    homepage = "https://wiki.gnome.org/Projects/GTK%2B/GtkImageView";
+    homepage = "https://wiki.gnome.org/Projects/GTK/GtkImageView";
 
     description = "Image viewer widget for GTK";
 
diff --git a/pkgs/development/libraries/libkml/default.nix b/pkgs/development/libraries/libkml/default.nix
deleted file mode 100644
index 0e2ab21ee79..00000000000
--- a/pkgs/development/libraries/libkml/default.nix
+++ /dev/null
@@ -1,56 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-, cmake
-, boost
-, expat
-, zlib
-, uriparser
-, minizip
-, gtest
-}:
-
-stdenv.mkDerivation rec {
-  pname = "libkml";
-  version = "1.3.0";
-
-  src = fetchFromGitHub {
-    owner = "libkml";
-    repo = pname;
-    rev = version;
-    sha256 = "0gl4cqfps9mzx6hzf3dc10hy5y8smpyf1s31sqm7w343hgsllv0z";
-  };
-
-  nativeBuildInputs = [
-    cmake
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_TESTING=ON"
-  # Darwin tests require rpath for libs in build dir
-  ] ++ lib.optional stdenv.isDarwin [
-    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
-  ];
-
-  buildInputs = [
-    gtest
-    boost
-    expat
-    zlib
-    uriparser
-    minizip
-  ];
-
-  preCheck = ''
-    export LD_LIBRARY_PATH=$PWD/lib
-  '';
-
-  doCheck = true;
-
-  meta = with lib; {
-    description = "Reference implementation of OGC KML 2.2";
-    homepage = "https://github.com/libkml/libkml";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ costrouc ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/physics/lhapdf/default.nix b/pkgs/development/libraries/physics/lhapdf/default.nix
index db185e29919..a3753d86356 100644
--- a/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -9,6 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-fS8CZ+LWWw3e4EhVOzQtfIk6bbq+HjJsrWLeABDdgQw=";
   };
 
+  # The Apple SDK only exports locale_t from xlocale.h whereas glibc
+  # had decided that xlocale.h should be a part of locale.h
+  postPatch = lib.optionalString (stdenv.isDarwin && stdenv.cc.isGNU) ''
+    substituteInPlace src/GridPDF.cc --replace '#include <locale>' '#include <xlocale.h>'
+  '';
+
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ python ];
 
diff --git a/pkgs/development/libraries/stargate-libcds/Makefile.patch b/pkgs/development/libraries/stargate-libcds/Makefile.patch
new file mode 100644
index 00000000000..b5b116b78be
--- /dev/null
+++ b/pkgs/development/libraries/stargate-libcds/Makefile.patch
@@ -0,0 +1,19 @@
+diff --git a/Makefile b/Makefile
+index 872af46..7eba8a1 100644
+--- a/Makefile
++++ b/Makefile
+@@ -156,13 +156,7 @@ test:
+ 	# Compile and run the test suite through Valgrind to check for
+ 	# memory errors, then generate an HTML code coverage report
+ 	# using gcovr
+-	$(CC) $(CC_ARGS) -O0 $(DEBUG_FLAGS) $(PLAT_FLAGS) $(GCOVARGS) \
++	$(CC) $(CC_ARGS) -O0 $(DEBUG_FLAGS) $(PLAT_FLAGS) \
+ 	    $(shell find src tests -name *.c) \
+ 	    -Iinclude \
+ 	    -o $(NAME).tests
+-	# If Valgrind exits non-zero, try running 'gdb ./libcds.tests'
+-	# to debug the test suite
+-	valgrind ./$(NAME).tests --track-origins=yes --leak-check=full
+-	mkdir html || rm -rf html/*
+-	gcovr -r . --exclude=bench --html --html-details -o html/coverage.html
+-	$(BROWSER) html/coverage.html &
diff --git a/pkgs/development/libraries/stargate-libcds/default.nix b/pkgs/development/libraries/stargate-libcds/default.nix
new file mode 100644
index 00000000000..409d9e820fc
--- /dev/null
+++ b/pkgs/development/libraries/stargate-libcds/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "stargate-libcds";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "stargateaudio";
+    repo = "libcds";
+    rev = version;
+    sha256 = "sha256-THThEzS8gGdwn3h0EBttaX5ljZH9Ma2Rcg143+GIdU8=";
+  };
+
+  # Fix 'error: unrecognized command line option' in platforms other than x86
+  PLAT_FLAGS = lib.optionalString stdenv.isx86_64 "-mfpmath=sse -mssse3";
+
+  patches = [
+    # Remove unecessary tests (valgrind, coverage)
+    ./Makefile.patch
+
+    # Fix for building on darwin
+    (fetchpatch {
+      name = "malloc-to-stdlib.patch";
+      url = "https://github.com/stargateaudio/libcds/commit/65dc08f059deda8ba5707ba6116b616d0ad0bd8d.patch";
+      sha256 = "sha256-FIGlobUVrDYOtnHjsWyE420PoULPHEK/3T9Fv8hfTl4=";
+    })
+  ];
+
+  doCheck = true;
+
+  installPhase = ''
+    runHook preInstall
+    install -D libcds.so -t $out/lib/
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "C data structure library";
+    homepage = "https://github.com/stargateaudio/libcds";
+    maintainers = with maintainers; [ yuu ];
+    license = licenses.lgpl3Only;
+  };
+}
diff --git a/pkgs/development/mobile/gomobile/default.nix b/pkgs/development/mobile/gomobile/default.nix
index ce44b7dd934..4087f1cca80 100644
--- a/pkgs/development/mobile/gomobile/default.nix
+++ b/pkgs/development/mobile/gomobile/default.nix
@@ -1,6 +1,7 @@
 { stdenv, lib, fetchgit, buildGoModule, zlib, makeWrapper, xcodeenv, androidenv
 , xcodeWrapperArgs ? { }
 , xcodeWrapper ? xcodeenv.composeXcodeWrapper xcodeWrapperArgs
+, withAndroidPkgs ? true
 , androidPkgs ? androidenv.composeAndroidPackages {
     includeNDK = true;
     ndkVersion = "22.1.7171670";
@@ -43,10 +44,12 @@ buildGoModule {
     mkdir -p $out/src/golang.org/x
     ln -s $src $out/src/golang.org/x/mobile
     wrapProgram $out/bin/gomobile \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}" \
+  '' + lib.optionalString withAndroidPkgs ''
       --prefix PATH : "${androidPkgs.androidsdk}/bin" \
       --set ANDROID_NDK_HOME "${androidPkgs.androidsdk}/libexec/android-sdk/ndk-bundle" \
-      --set ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk"
+      --set ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk" \
+  '' + ''
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 4ac24a546d0..2d924cb4eb8 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -126,6 +126,7 @@
 , "gitmoji-cli"
 , "glob"
 , "graphql-cli"
+, "graphqurl"
 , "grunt-cli"
 , "makam"
 , "meshcommander"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 5b95896f439..4ebc447d7d1 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -220,13 +220,13 @@ let
         sha512 = "GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w==";
       };
     };
-    "@apollo/client-3.4.16" = {
+    "@apollo/client-3.5.0" = {
       name = "_at_apollo_slash_client";
       packageName = "@apollo/client";
-      version = "3.4.16";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/client/-/client-3.4.16.tgz";
-        sha512 = "iF4zEYwvebkri0BZQyv8zfavPfVEafsK0wkOofa6eC2yZu50J18uTutKtC174rjHZ2eyxZ8tV7NvAPKRT+OtZw==";
+        url = "https://registry.npmjs.org/@apollo/client/-/client-3.5.0.tgz";
+        sha512 = "q86EZKTdPFcfFa2PstqE0xf+/7VhREdq3nSlpmJ9q9thQIuwnKcOQDYO+r+wHs4NGjxVGtYlfiUCycpe2op7Jg==";
       };
     };
     "@apollo/protobufjs-1.2.2" = {
@@ -2875,13 +2875,13 @@ let
         sha512 = "j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==";
       };
     };
-    "@google-cloud/pubsub-2.18.1" = {
+    "@google-cloud/pubsub-2.18.2" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.18.1";
+      version = "2.18.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.18.1.tgz";
-        sha512 = "L2ejjRPszBybsRXJMLHN19UimpchNLNrtE7hJtoZxcy4fhITQGIDk1Ba4LceJYgSMJGA/YatZMYNavgyYpxhvA==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.18.2.tgz";
+        sha512 = "wEJQNlsMuGNPq72r2D7CRRrYV0Q7tIVMpJjU3PT7z1fmuLZbjfNZJl38uT3scsmqTf9pu9jNcAiWtQv6qCSq4g==";
       };
     };
     "@graphql-cli/common-4.1.0" = {
@@ -3091,13 +3091,13 @@ let
         sha512 = "aUN6oGk9un8rfYWz73nQgFxPCYJQYd8LpIGguZHBsNduBMyqG6EWANrsVBuTG+nl/l4dKb3x+qi1l9+oxDxqGg==";
       };
     };
-    "@grpc/grpc-js-1.4.3" = {
+    "@grpc/grpc-js-1.4.4" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
-      version = "1.4.3";
+      version = "1.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.3.tgz";
-        sha512 = "SVt7zp7OjNp/t5p0dGjP+O6FdWnbkq80sVTvW4dYRQaXV261wzTvjEt8wrW0KQ+X0vC/kvzQJWvHcIU9wej3uQ==";
+        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.4.4.tgz";
+        sha512 = "a6222b7Dl6fIlMgzVl7e+NiRoLiZFbpcwvBH2Oli56Bn7W4/3Ld+86hK4ffPn5rx2DlDidmIcvIJiOQXyhv9gA==";
       };
     };
     "@grpc/proto-loader-0.6.4" = {
@@ -3595,22 +3595,22 @@ let
         sha512 = "s0jhnq/1X1IQQpKcAoUAd3KZ6X58nEjIi+vL4aC0iyDW6v2pmt8J5G/ilUZSbvplyJ2GdTMYi7NOCz2f3QAGZA==";
       };
     };
-    "@jsii/check-node-1.42.0" = {
+    "@jsii/check-node-1.43.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.42.0.tgz";
-        sha512 = "URX4s0iOmuxbERL2rO10JlwedYbAT/3vM2HqswgjtJUbZTFgHsmg+Tzh3JglJzKuCg8Xm4m6CP4UlFMPqPRcqA==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.43.0.tgz";
+        sha512 = "9+bZhSZB5Mz4yQb0y+sJTbFugtUmVyEaRNRoaptc31w8xERiOXr1SJNQe3JCOckArf5KfeeGHVbXB9ZMBcBSkg==";
       };
     };
-    "@jsii/spec-1.42.0" = {
+    "@jsii/spec-1.43.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.42.0.tgz";
-        sha512 = "SS2Q1Ds/yiTejd/0KO5lC6SUGqlfjuqZ6nAxJxLU76JQ99v1spRJeS7oi/2OW+ZmTEwBy81DgjOxA8bwUc0U/Q==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.43.0.tgz";
+        sha512 = "4FZmzdBdVO64VEq1dQ6vXvBIWWHnUjP8bz7jAIjwSTE6iyJnSz2XT32tJpNg57RpBHRDdUuZGCgYa+xl06iGcA==";
       };
     };
     "@kwsites/file-exists-1.1.1" = {
@@ -4684,13 +4684,13 @@ let
         sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     };
-    "@npmcli/arborist-2.10.0" = {
+    "@npmcli/arborist-4.0.4" = {
       name = "_at_npmcli_slash_arborist";
       packageName = "@npmcli/arborist";
-      version = "2.10.0";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-2.10.0.tgz";
-        sha512 = "CLnD+zXG9oijEEzViimz8fbOoFVb7hoypiaf7p6giJhvYtrxLAyY3cZAMPIFQvsG731+02eMDp3LqVBNo7BaZA==";
+        url = "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.0.4.tgz";
+        sha512 = "5hRkiHF9zu62z6a7CJqhVG5CFUVnbYqvrrcxxEmhxFgyH2ovICyULOrj7nF4VBlfzp7OPu/rveV2ts9iYrn74g==";
       };
     };
     "@npmcli/ci-detect-1.4.0" = {
@@ -4729,22 +4729,22 @@ let
         sha512 = "9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==";
       };
     };
-    "@npmcli/map-workspaces-1.0.4" = {
+    "@npmcli/map-workspaces-2.0.0" = {
       name = "_at_npmcli_slash_map-workspaces";
       packageName = "@npmcli/map-workspaces";
-      version = "1.0.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-1.0.4.tgz";
-        sha512 = "wVR8QxhyXsFcD/cORtJwGQodeeaDf0OxcHie8ema4VgFeqwYkFsDPnSrIRSytX8xR6nKPAH89WnwTcaU608b/Q==";
+        url = "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.0.tgz";
+        sha512 = "QBJfpCY1NOAkkW3lFfru9VTdqvMB2TN0/vrevl5xBCv5Fi0XDVcA6rqqSau4Ysi4Iw3fBzyXV7hzyTBDfadf7g==";
       };
     };
-    "@npmcli/metavuln-calculator-1.1.1" = {
+    "@npmcli/metavuln-calculator-2.0.0" = {
       name = "_at_npmcli_slash_metavuln-calculator";
       packageName = "@npmcli/metavuln-calculator";
-      version = "1.1.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-1.1.1.tgz";
-        sha512 = "9xe+ZZ1iGVaUovBVFI9h3qW+UuECUzhvZPxK9RaEA2mjU26o5D0JloGYWwLYvQELJNmBdQB6rrpuN8jni6LwzQ==";
+        url = "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz";
+        sha512 = "VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg==";
       };
     };
     "@npmcli/move-file-1.1.2" = {
@@ -4837,6 +4837,15 @@ let
         sha512 = "zEYbpxSQr80t7MkLMHOmZr8QCrCIbVrI7fLSZWlsvD2AEM0vvzuhWymjo9/kHy2/kNfxwu7NTI4i2a0zoHu11w==";
       };
     };
+    "@oclif/errors-1.3.4" = {
+      name = "_at_oclif_slash_errors";
+      packageName = "@oclif/errors";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.4.tgz";
+        sha512 = "pJKXyEqwdfRTUdM8n5FIHiQQHg5ETM0Wlso8bF9GodczO40mF5Z3HufnYWJE7z8sGKxOeJCdbAVZbS8Y+d5GCw==";
+      };
+    };
     "@oclif/errors-1.3.5" = {
       name = "_at_oclif_slash_errors";
       packageName = "@oclif/errors";
@@ -4882,6 +4891,15 @@ let
         sha512 = "tuzhvxxRtfLnWa96klngXBi5IwHt9S/twedCbQhl9dYIKTFMHI1BcOQcPra6ylct+M+b9jhEF5sjWLv78tB6tw==";
       };
     };
+    "@oclif/plugin-help-3.2.1" = {
+      name = "_at_oclif_slash_plugin-help";
+      packageName = "@oclif/plugin-help";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.1.tgz";
+        sha512 = "vq7rn16TrQmjX3Al/k1Z5iBZWZ3HE8fDXs52OmDJmmTqryPSNvURH9WCAsqr0PODYCSR17Hy1VTzS0x7vVVLEQ==";
+      };
+    };
     "@oclif/plugin-help-3.3.0" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
@@ -5809,13 +5827,13 @@ let
         sha512 = "cl5uPaGg72z0sCUpF0zsOhwYYUV72Gxc1FwFfxltO8hSvMeFDvwD7JrNE4kHcIcKRjwPGbSH0fdVPUpErZ8Mog==";
       };
     };
-    "@serverless/utils-5.20.0" = {
+    "@serverless/utils-5.20.1" = {
       name = "_at_serverless_slash_utils";
       packageName = "@serverless/utils";
-      version = "5.20.0";
+      version = "5.20.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils/-/utils-5.20.0.tgz";
-        sha512 = "ko6NsB5tudcSiqeBeqAKsEfa/gDZlwBIenajec2nUELcXVSy13Y4deCSYQqzn1MA0OkNOgMBJL349exukENiTg==";
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-5.20.1.tgz";
+        sha512 = "X2CD685Q4NHuX4Si3SVZU4iaMDgD4+d78sd+nTyxV+lwFHG9FFUSJftwclYzoqZshw6QoYd/mMnUotWnlsiLWA==";
       };
     };
     "@serverless/utils-china-1.1.4" = {
@@ -7213,13 +7231,13 @@ let
         sha512 = "F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==";
       };
     };
-    "@types/node-12.20.36" = {
+    "@types/node-12.20.37" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "12.20.36";
+      version = "12.20.37";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-12.20.36.tgz";
-        sha512 = "+5haRZ9uzI7rYqzDznXgkuacqb6LJhAti8mzZKWxIXn/WEtvB+GHVJ7AuMwcN1HMvXOSJcrvA6PPoYHYOYYebA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.20.37.tgz";
+        sha512 = "i1KGxqcvJaLQali+WuypQnXwcplhtNtjs66eNsZpp2P2FL/trJJxx/VWsM0YCL2iMoIJrbXje48lvIQAQ4p2ZA==";
       };
     };
     "@types/node-13.13.52" = {
@@ -7240,13 +7258,13 @@ let
         sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
       };
     };
-    "@types/node-14.17.32" = {
+    "@types/node-14.17.33" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.17.32";
+      version = "14.17.33";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.17.32.tgz";
-        sha512 = "JcII3D5/OapPGx+eJ+Ik1SQGyt6WvuqdRfh9jUwL6/iHGjmyOriBDciBUu7lEIBTL2ijxwrR70WUnw5AEDmFvQ==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.17.33.tgz";
+        sha512 = "noEeJ06zbn3lOh4gqe2v7NMGS33jrulfNqYFDjjEbhpDEHR5VTxgYNQSBqBlJIsBJW3uEYDgD6kvMnrrhGzq8g==";
       };
     };
     "@types/node-15.14.9" = {
@@ -7276,6 +7294,15 @@ let
         sha512 = "ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==";
       };
     };
+    "@types/node-16.11.7" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "16.11.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.7.tgz";
+        sha512 = "QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==";
+      };
+    };
     "@types/node-16.7.3" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -7825,15 +7852,6 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@types/zen-observable-0.8.3" = {
-      name = "_at_types_slash_zen-observable";
-      packageName = "@types/zen-observable";
-      version = "0.8.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz";
-        sha512 = "fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw==";
-      };
-    };
     "@typescript-eslint/eslint-plugin-4.33.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
@@ -9634,6 +9652,15 @@ let
         sha512 = "SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==";
       };
     };
+    "ajv-8.7.1" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "8.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-8.7.1.tgz";
+        sha512 = "gPpOObTO1QjbnN1sVMjJcp1TF9nggMfO4MBR5uQl6ZVTOaEPq5i4oq/6R9q2alMMPB3eg53wFv1RuJBLuxf3Hw==";
+      };
+    };
     "ajv-errors-1.0.1" = {
       name = "ajv-errors";
       packageName = "ajv-errors";
@@ -11839,13 +11866,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.1023.0" = {
+    "aws-sdk-2.1024.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1023.0";
+      version = "2.1024.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1023.0.tgz";
-        sha512 = "RAI8sUfK+00yL9i3xz5kbM3+t/0mjjnKhKyauXAlJN4seDYtIX5+BqMghpkZwvLBdi6idXIuz+FHWETHZccyuA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1024.0.tgz";
+        sha512 = "FgGvRtxTzgU7iBXG/+hCGqdE2U2gF/NqVDQsTBjrLIbOMiNNheL8uzxcmIKKZ49lFlWwVkM0HNmpEmA5hiLinw==";
       };
     };
     "aws-sdk-2.920.0" = {
@@ -13801,6 +13828,15 @@ let
         sha1 = "090700c4ba28862a8520ef378395fdee5f61c229";
       };
     };
+    "body-parser-1.18.2" = {
+      name = "body-parser";
+      packageName = "body-parser";
+      version = "1.18.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz";
+        sha1 = "87678a19d84b47d859b83199bd59bce222b10454";
+      };
+    };
     "body-parser-1.18.3" = {
       name = "body-parser";
       packageName = "body-parser";
@@ -17231,13 +17267,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.42.0" = {
+    "codemaker-1.43.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.42.0.tgz";
-        sha512 = "pjLw1YeWKdY09tDmr6HmeZCGd6G+Ku1UP3cK/oX79x5iEL2ZEm8kJrGQisasK6pk/Er75sDZA86c5Cn7sIx4GQ==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.43.0.tgz";
+        sha512 = "6FA4syN+22H9V0Dfadk9xbQ894kkeIhOH6HleiLRL0lU6Ts3nMB4lM01cHtnY/5YhLBr+XrHboV5Bi5xVFf4sg==";
       };
     };
     "codepage-1.4.0" = {
@@ -21984,6 +22020,15 @@ let
         sha1 = "80aec64c9d6d97e65cc2a9caa93c0aa6abf73aaa";
       };
     };
+    "depd-1.1.1" = {
+      name = "depd";
+      packageName = "depd";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz";
+        sha1 = "5783b4e1c459f06fa5ca27f991f3d06e7a310359";
+      };
+    };
     "depd-1.1.2" = {
       name = "depd";
       packageName = "depd";
@@ -23487,13 +23532,13 @@ let
         sha512 = "9oxNmKlDCaf651c+yJWCDIBpF6A9aY+wQtasLEeR5AsPYPuOKEX6xHnC2+WgCLOC94JEpCZznecyC84fbwZq4A==";
       };
     };
-    "electron-to-chromium-1.3.890" = {
+    "electron-to-chromium-1.3.891" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.890";
+      version = "1.3.891";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.890.tgz";
-        sha512 = "VWlVXSkv0cA/OOehrEyqjUTHwV8YXCPTfPvbtoeU2aHR21vI4Ejh5aC4AxUwOmbLbBgb6Gd3URZahoCxtBqCYQ==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.891.tgz";
+        sha512 = "3cpwR82QkIS01CN/dup/4Yr3BiOiRLlZlcAFn/5FbNCunMO9ojqDgEP9JEo1QNLflu3pEnPWve50gHOEKc7r6w==";
       };
     };
     "electrum-client-git://github.com/janoside/electrum-client" = {
@@ -25541,6 +25586,15 @@ let
         sha1 = "0b63ae626c96b71b78d13dfce079c10351635a86";
       };
     };
+    "express-4.16.3" = {
+      name = "express";
+      packageName = "express";
+      version = "4.16.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express/-/express-4.16.3.tgz";
+        sha1 = "6af8a502350db3246ecc4becf6b5a34d22f7ed53";
+      };
+    };
     "express-4.16.4" = {
       name = "express";
       packageName = "express";
@@ -29538,6 +29592,15 @@ let
         sha512 = "GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==";
       };
     };
+    "graphql-15.4.0" = {
+      name = "graphql";
+      packageName = "graphql";
+      version = "15.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql/-/graphql-15.4.0.tgz";
+        sha512 = "EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==";
+      };
+    };
     "graphql-15.7.2" = {
       name = "graphql";
       packageName = "graphql";
@@ -29574,6 +29637,42 @@ let
         sha512 = "bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==";
       };
     };
+    "graphql-language-service-interface-2.9.0" = {
+      name = "graphql-language-service-interface";
+      packageName = "graphql-language-service-interface";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-language-service-interface/-/graphql-language-service-interface-2.9.0.tgz";
+        sha512 = "FrfmEJCgYo9zz97VBs6093uGIHxxpb+z6dRi5MLV+spQYdEhfWy7BFJ7XjHPreDvxekK8SFtbVCYypETSGYe7w==";
+      };
+    };
+    "graphql-language-service-parser-1.10.0" = {
+      name = "graphql-language-service-parser";
+      packageName = "graphql-language-service-parser";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-language-service-parser/-/graphql-language-service-parser-1.10.0.tgz";
+        sha512 = "cLExv0EjqT2hsKdwVTPmKU6eMfjZAjxqywgCPnWD48eJn6tyuePMyG7ye+jpX1PRPPx/cDHfFJGf8sUclchvng==";
+      };
+    };
+    "graphql-language-service-types-1.8.2" = {
+      name = "graphql-language-service-types";
+      packageName = "graphql-language-service-types";
+      version = "1.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-language-service-types/-/graphql-language-service-types-1.8.2.tgz";
+        sha512 = "Sj07RHnMwAhEvAt7Jdt1l/x56ZpoNh+V6g+T58CF6GiYqI5l4vXqqRB4d4xHDcNQX98GpJfnf3o8BqPgP3C5Sw==";
+      };
+    };
+    "graphql-language-service-utils-2.5.1" = {
+      name = "graphql-language-service-utils";
+      packageName = "graphql-language-service-utils";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-language-service-utils/-/graphql-language-service-utils-2.5.1.tgz";
+        sha512 = "Lzz723cYrYlVN4WVzIyFGg3ogoe+QYAIBfdtDboiIILoy0FTmqbyC2TOErqbmWKqO4NK9xDA95cSRFbWiHYj0g==";
+      };
+    };
     "graphql-subscriptions-1.2.1" = {
       name = "graphql-subscriptions";
       packageName = "graphql-subscriptions";
@@ -31041,6 +31140,15 @@ let
         sha1 = "fa7168944ab9a519d337cb0bec7284dc3e723d87";
       };
     };
+    "http-errors-1.6.2" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz";
+        sha1 = "0a002cc85707192a7e7946ceedc11155f60ec736";
+      };
+    };
     "http-errors-1.6.3" = {
       name = "http-errors";
       packageName = "http-errors";
@@ -31411,13 +31519,13 @@ let
         sha512 = "xFwOnNlOt8L+SovC7dTNchKaNYJb5l8rKZZwpWQnCme1r7CU4Hlhp1RDqPES6b0OpS7DkTo9iU0GltQGkpsjMw==";
       };
     };
-    "hypercore-crypto-2.3.1" = {
+    "hypercore-crypto-2.3.2" = {
       name = "hypercore-crypto";
       packageName = "hypercore-crypto";
-      version = "2.3.1";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hypercore-crypto/-/hypercore-crypto-2.3.1.tgz";
-        sha512 = "KyfhMG3XBkUj/i7Avhgeb7nGeT3kw0272kvvSsVE08gMNjQf16Ivd4gzvFOYFDj88FSjAIiktMWhaWkZ8G6X4A==";
+        url = "https://registry.npmjs.org/hypercore-crypto/-/hypercore-crypto-2.3.2.tgz";
+        sha512 = "GzHgVOfr5utdiJG5QNcQZ0oo+/YQNbekpg429x00YpUobBraX2qEL3E+iH/EFEIdCQSiGHfToWyYw+OpznSjww==";
       };
     };
     "hypercore-default-storage-1.1.1" = {
@@ -31582,6 +31690,15 @@ let
         sha512 = "VElMm+LoeEuhViVwnDw1gR3snTItK9NJqgok8PZ5WU870MVO1x+5KEbzLO/6GC1zu42Uc3EuGj3nsGMGMNwT0A==";
       };
     };
+    "iconv-lite-0.4.19" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
+        sha512 = "oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==";
+      };
+    };
     "iconv-lite-0.4.23" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
@@ -34516,6 +34633,15 @@ let
         sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
       };
     };
+    "isomorphic-fetch-3.0.0" = {
+      name = "isomorphic-fetch";
+      packageName = "isomorphic-fetch";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz";
+        sha512 = "qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==";
+      };
+    };
     "isomorphic-git-0.78.5" = {
       name = "isomorphic-git";
       packageName = "isomorphic-git";
@@ -35255,13 +35381,13 @@ let
         sha512 = "M+opnlcNb1Ne5igms/OJn/e2ZyQgcCwmqqljuOsHXBMFm7vMOVLSjEUcBYcW7ifJeM1+XYg8+wfuAoZhqY1zCg==";
       };
     };
-    "jsii-1.42.0" = {
+    "jsii-1.43.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.42.0.tgz";
-        sha512 = "Ctbaudn3t3wJ3ihsgCLuEjQGM5CfZl1PJDXfOlELUV6ELwTbvT3TCbyVdt/CCWTOObigQR8OftAB3jl7ymqd3w==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.43.0.tgz";
+        sha512 = "2GsSiwbX++/f6BE/fnT9s0iBQtT+MSsnFBZdpyw4sV50gEg9gbD1rPO/ewSLuUh83mrztPtdiurxsBpYGj17Nw==";
       };
     };
     "jsii-pacmak-1.37.0" = {
@@ -35273,31 +35399,31 @@ let
         sha512 = "cXLXAOyCqd/QNBy+OfcmMgj8UdNVbJJsKoM/C3SvRgdi+fpQlxh1iDTOcKUwd3/QgMuDMDLvKCCpLmq/YRjreA==";
       };
     };
-    "jsii-pacmak-1.42.0" = {
+    "jsii-pacmak-1.43.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.42.0.tgz";
-        sha512 = "JqgvmI2gIEedB+BvfG7kXkxc5o38TI1VwdQTgUW5hbr0631AgKs/hrpWqcUQ9aNQFwTyzaKWPb0vF8bDitCF6A==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.43.0.tgz";
+        sha512 = "GrvEz/Rbiwu+O3HWNiDybXV+homhzSZH0DgBkfCvmPvPUJPmSn1u3cU586F77gESGTOy9bOXJOkGfXpq9PZO4Q==";
       };
     };
-    "jsii-reflect-1.42.0" = {
+    "jsii-reflect-1.43.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.42.0.tgz";
-        sha512 = "gwVZqk2vEnEEYfOU2awHaqZqJd9lA+rEBrlaiMlun42Ve2ZY5HMDBtP/DxgFJG68LCzdlS0xQuHleuBlLYWy0A==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.43.0.tgz";
+        sha512 = "UoEK0c2CO0LPvb53TkedFFyAKBXbrb35vs65HJhfBzBqyZBcPQ3+mm6lFA38oTtsDFNBJe0Eyg0cuFaWzWDllg==";
       };
     };
-    "jsii-rosetta-1.42.0" = {
+    "jsii-rosetta-1.43.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.42.0.tgz";
-        sha512 = "F7GLNdoHBAYN4eqw7c6Tv12lqGOoMazsjuXDJRubjjbbwZ0tM6a78rHhrZwE4w1XV7mIkTxKmkj4DnbSIPW8wg==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.43.0.tgz";
+        sha512 = "AjJ0tlrnBatJB7OJ/cn9sFaLpM4Ra7fSkxLlHNWsVE1KFAUnCLIcDloXaytaDmBXY/emxi3/XbWwGUIqbjbCIw==";
       };
     };
     "jsii-srcmak-0.1.392" = {
@@ -44195,6 +44321,15 @@ let
         sha1 = "df7c3ed5a277c3f9d4b5d819b05311d10a200ae6";
       };
     };
+    "npm-7.24.2" = {
+      name = "npm";
+      packageName = "npm";
+      version = "7.24.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm/-/npm-7.24.2.tgz";
+        sha512 = "120p116CE8VMMZ+hk8IAb1inCPk4Dj3VZw29/n2g6UI77urJKVYb7FZUDW8hY+EBnfsjI/2yrobBgFyzo7YpVQ==";
+      };
+    };
     "npm-bundled-1.1.2" = {
       name = "npm-bundled";
       packageName = "npm-bundled";
@@ -45195,13 +45330,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.42.0" = {
+    "oo-ascii-tree-1.43.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.42.0";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.42.0.tgz";
-        sha512 = "qlynjsWdGidfoWT2uEIr0iNsNmHU2ZhKwtjpJw4VSd3jlxoDpWDDmd5cud/ZBhFT2F1UFSbz+Gl9YtlPYMgQ5Q==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.43.0.tgz";
+        sha512 = "OjCQZnEi/ssOj5f7d3oILcTrzpKN9eWIWEpoEdRr+8NOdcLBGiXDdUYotIx/ajcjmRPjuoRtRT7NE6cKWWT/fA==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -45249,6 +45384,15 @@ let
         sha512 = "mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==";
       };
     };
+    "open-7.3.1" = {
+      name = "open";
+      packageName = "open";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.3.1.tgz";
+        sha512 = "f2wt9DCBKKjlFbjzGb8MOAW8LH8F0mrs1zc7KTjAJ9PZNQbfenzWbNP1VZJvw6ICMG9r14Ah6yfwPn7T7i646A==";
+      };
+    };
     "open-7.4.2" = {
       name = "open";
       packageName = "open";
@@ -46320,6 +46464,15 @@ let
         sha512 = "+/wmHtzJuWii1sXn3HCuH/FTwGhrp4tmJTxSKJbfS+vkipci6osxXM5mY0jUiRzWKMTgUT8l7HFbeSwZAynqHw==";
       };
     };
+    "p-transform-1.2.0" = {
+      name = "p-transform";
+      packageName = "p-transform";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-transform/-/p-transform-1.2.0.tgz";
+        sha512 = "FtuSF5RB0UFHPawWyHVU3z3QdRfNIVbdwQ6iwGQl1ixCKszVhxax0JAgmBbM+UpwDIYm2i1MWyiLDyJqm8Gwmw==";
+      };
+    };
     "p-try-1.0.0" = {
       name = "p-try";
       packageName = "p-try";
@@ -51397,6 +51550,15 @@ let
         sha1 = "13e26d28ad6b0ffaa91312cd3bf708ed351e7233";
       };
     };
+    "qs-6.5.1" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
+        sha512 = "eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==";
+      };
+    };
     "qs-6.5.2" = {
       name = "qs";
       packageName = "qs";
@@ -51883,6 +52045,15 @@ let
         sha1 = "a2c2f98c8531cee99c63d8d238b7de97bb659fca";
       };
     };
+    "raw-body-2.3.2" = {
+      name = "raw-body";
+      packageName = "raw-body";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz";
+        sha1 = "bcd60c77d3eb93cde0050295c3f379389bc88f89";
+      };
+    };
     "raw-body-2.3.3" = {
       name = "raw-body";
       packageName = "raw-body";
@@ -56104,6 +56275,15 @@ let
         sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
       };
     };
+    "setprototypeof-1.0.3" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz";
+        sha1 = "66567e37043eeb4f04d91bd658c0cbefb55b8e04";
+      };
+    };
     "setprototypeof-1.1.0" = {
       name = "setprototypeof";
       packageName = "setprototypeof";
@@ -59965,6 +60145,15 @@ let
         sha512 = "cVqd/URpp7si1HWu5YqQ3vqQkjuolAwHypY1B4itPlS71/lsf6TQPZ2Y0ijT22EYVkvH5ove9JFJf4u7VGPuZw==";
       };
     };
+    "subscriptions-transport-ws-0.9.18" = {
+      name = "subscriptions-transport-ws";
+      packageName = "subscriptions-transport-ws";
+      version = "0.9.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz";
+        sha512 = "tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==";
+      };
+    };
     "subscriptions-transport-ws-0.9.19" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
@@ -61163,13 +61352,13 @@ let
         sha512 = "3qAQpykRTD5DReLu5/cwpsg7EZFzP3Q0Hp2XUWJUw2mpq2jfgOKTZr8IZKKnNieRVVo1UauROTdhbQJZveGKtQ==";
       };
     };
-    "terser-webpack-plugin-5.2.4" = {
+    "terser-webpack-plugin-5.2.5" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "5.2.4";
+      version = "5.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz";
-        sha512 = "E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.5.tgz";
+        sha512 = "3luOVHku5l0QBeYS8r4CdHYWEGMmIj3H1U64jgkdZzECcSOJAyJ9TjuqcQZvw1Y+4AOBN9SeYJPJmFn2cM4/2g==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -67176,13 +67365,13 @@ let
         sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
       };
     };
-    "webpack-dev-server-3.11.2" = {
+    "webpack-dev-server-3.11.3" = {
       name = "webpack-dev-server";
       packageName = "webpack-dev-server";
-      version = "3.11.2";
+      version = "3.11.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz";
-        sha512 = "A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ==";
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz";
+        sha512 = "3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA==";
       };
     };
     "webpack-flush-chunks-2.0.3" = {
@@ -67941,6 +68130,15 @@ let
         sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
       };
     };
+    "wrap-ansi-4.0.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-4.0.0.tgz";
+        sha512 = "uMTsj9rDb0/7kk1PbcbCcwvHUxp60fGDB/NNXpVa0Q+ic/e7y5+BwTxKfQ33VYgDppSwi/FBzpetYzo8s6tfbg==";
+      };
+    };
     "wrap-ansi-5.1.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
@@ -68139,6 +68337,15 @@ let
         sha512 = "zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw==";
       };
     };
+    "ws-7.4.2" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz";
+        sha512 = "T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA==";
+      };
+    };
     "ws-7.4.5" = {
       name = "ws";
       packageName = "ws";
@@ -69238,13 +69445,13 @@ let
         sha512 = "9Ni+uXWeFix9+1t7s1q40zZdbcpdi/OwgD4N4cVaqI+bppPciOOXQ/RSggannwZu8m8zrSWELn6/93G7308jgg==";
       };
     };
-    "yeoman-environment-3.6.0" = {
+    "yeoman-environment-3.7.0" = {
       name = "yeoman-environment";
       packageName = "yeoman-environment";
-      version = "3.6.0";
+      version = "3.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.6.0.tgz";
-        sha512 = "X16N9lhzRdUKFT8MZrpwjLDKsdgAUqh4VPR2wAXeAqjJJaUxYBxCQGFxtZVTf3vbyNuIHXPunwOLtK60bpapbg==";
+        url = "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.7.0.tgz";
+        sha512 = "33MxBYO3XAU9AVnDeDj+FY4IUyf6o5zQmYK4GtPGzaDZIiLHtt1f9qzHLFfuZWrvV4ynN+3pa3hOYJKzgL6DHA==";
       };
     };
     "yeoman-generator-5.4.2" = {
@@ -69337,13 +69544,13 @@ let
         sha512 = "Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==";
       };
     };
-    "zen-observable-ts-1.1.0" = {
+    "zen-observable-ts-1.2.2" = {
       name = "zen-observable-ts";
       packageName = "zen-observable-ts";
-      version = "1.1.0";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.1.0.tgz";
-        sha512 = "1h4zlLSqI2cRLPJUHJFL8bCWHhkpuXkF+dbGkRaWjgDIG26DmzyshUMrdV/rL3UnR+mhaX4fRq8LPouq0MYYIA==";
+        url = "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.2.tgz";
+        sha512 = "o15G3luGAPoWD2//djCQsnC7886KpgQETAvTwnDPMN33RS+XACoFR46fm5e3tC/WNTF0uzHPL91Yyakc280Xiw==";
       };
     };
     "zeromq-5.2.8" = {
@@ -70424,7 +70631,7 @@ in
       sources."@hyperswarm/hypersign-2.1.1"
       sources."@hyperswarm/network-2.1.0"
       sources."@leichtgewicht/ip-codec-2.0.3"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."abstract-extension-3.1.1"
       sources."abstract-leveldown-6.2.3"
       sources."ansi-colors-3.2.3"
@@ -70583,7 +70790,7 @@ in
         ];
       })
       sources."hypercore-cache-1.0.2"
-      (sources."hypercore-crypto-2.3.1" // {
+      (sources."hypercore-crypto-2.3.2" // {
         dependencies = [
           sources."uint64be-3.0.0"
         ];
@@ -70957,7 +71164,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/tough-cookie-2.3.8"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -71976,7 +72183,7 @@ in
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
       sources."@types/json5-0.0.29"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -72035,7 +72242,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       (sources."enhanced-resolve-5.8.3" // {
@@ -72148,7 +72355,6 @@ in
       })
       sources."os-name-4.0.1"
       sources."os-tmpdir-1.0.2"
-      sources."p-limit-3.1.0"
       sources."parent-module-1.0.1"
       sources."parse-json-5.2.0"
       sources."path-is-absolute-1.0.1"
@@ -72205,7 +72411,7 @@ in
           sources."commander-2.20.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.4" // {
+      (sources."terser-webpack-plugin-5.2.5" // {
         dependencies = [
           sources."ajv-6.12.6"
           sources."json-schema-traverse-0.4.1"
@@ -72246,7 +72452,6 @@ in
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
       sources."yaml-1.10.2"
-      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -72514,7 +72719,7 @@ in
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
@@ -72779,7 +72984,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -73804,7 +74009,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."debug-4.3.2"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -73899,7 +74104,7 @@ in
     dependencies = [
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -73935,7 +74140,7 @@ in
     dependencies = [
       sources."browserslist-4.17.6"
       sources."caniuse-lite-1.0.30001278"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."escalade-3.1.1"
       sources."fraction.js-4.1.1"
       sources."node-releases-2.0.1"
@@ -73963,14 +74168,14 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ast-types-0.13.4"
-      (sources."aws-sdk-2.1023.0" // {
+      (sources."aws-sdk-2.1024.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -74185,7 +74390,7 @@ in
       sources."@alexbosworth/saxophone-0.6.2"
       (sources."@grpc/grpc-js-1.4.2" // {
         dependencies = [
-          sources."@types/node-16.11.6"
+          sources."@types/node-16.11.7"
         ];
       })
       sources."@grpc/proto-loader-0.6.6"
@@ -74220,7 +74425,7 @@ in
       sources."@types/ws-8.2.0"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.7"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ansi-0.3.1"
       (sources."ansi-align-3.0.1" // {
         dependencies = [
@@ -74515,7 +74720,7 @@ in
         dependencies = [
           sources."@grpc/grpc-js-1.3.7"
           sources."@grpc/proto-loader-0.6.4"
-          sources."@types/node-16.11.6"
+          sources."@types/node-16.11.7"
           sources."@types/ws-7.4.7"
           sources."ansi-regex-5.0.1"
           sources."bech32-2.0.0"
@@ -74566,6 +74771,7 @@ in
             dependencies = [
               sources."@grpc/grpc-js-1.4.2"
               sources."@grpc/proto-loader-0.6.6"
+              sources."@types/node-16.11.6"
               sources."@types/ws-8.2.0"
               sources."bolt07-1.7.4"
               sources."bolt09-0.2.0"
@@ -74724,7 +74930,7 @@ in
       sources."process-nextick-args-2.0.1"
       (sources."protobufjs-6.11.2" // {
         dependencies = [
-          sources."@types/node-16.11.6"
+          sources."@types/node-16.11.7"
         ];
       })
       sources."proxy-addr-2.0.7"
@@ -76316,7 +76522,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -77326,11 +77532,11 @@ in
       sha512 = "E6HT4E8xjy9CFBEyN2jMil7zo9tRTghupgEda0ZxoT2B7TKxK6z9h2uDVXZH6iFb+ahIpGjbqoxmjKIyJyJtCA==";
     };
     dependencies = [
-      sources."@jsii/check-node-1.42.0"
-      sources."@jsii/spec-1.42.0"
-      sources."@types/node-12.20.36"
+      sources."@jsii/check-node-1.43.0"
+      sources."@jsii/spec-1.43.0"
+      sources."@types/node-12.20.37"
       sources."@xmldom/xmldom-0.7.5"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."at-least-node-1.0.0"
@@ -77343,7 +77549,7 @@ in
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.42.0" // {
+      (sources."codemaker-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
@@ -77408,25 +77614,25 @@ in
       sources."is-weakref-1.0.1"
       sources."is-weakset-2.0.1"
       sources."isarray-2.0.5"
-      (sources."jsii-1.42.0" // {
+      (sources."jsii-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.42.0" // {
+      (sources."jsii-pacmak-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.42.0" // {
+      (sources."jsii-reflect-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.42.0" // {
+      (sources."jsii-rosetta-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
@@ -77455,7 +77661,7 @@ in
       sources."object-is-1.1.5"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.42.0"
+      sources."oo-ascii-tree-1.43.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -77534,7 +77740,7 @@ in
       sha512 = "N0U5YgquMYZTqfO+SSIdP6K/EAnFqS5gHj8eISvP2ZjrphfSFM7hs4VO0bVvzNoMe/ByBbUtQMHXCs5r1XdB9Q==";
     };
     dependencies = [
-      sources."@apollo/client-3.4.16"
+      sources."@apollo/client-3.5.0"
       (sources."@apollo/protobufjs-1.2.2" // {
         dependencies = [
           sources."@types/node-10.17.60"
@@ -77599,8 +77805,8 @@ in
       })
       sources."@graphql-typed-document-node/core-3.1.0"
       sources."@josephg/resolvable-1.0.1"
-      sources."@jsii/check-node-1.42.0"
-      sources."@jsii/spec-1.42.0"
+      sources."@jsii/check-node-1.43.0"
+      sources."@jsii/spec-1.43.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -77640,14 +77846,13 @@ in
       sources."@types/express-serve-static-core-4.17.24"
       sources."@types/long-4.0.1"
       sources."@types/mime-1.3.2"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."@types/node-fetch-2.5.12"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/serve-static-1.13.10"
       sources."@types/yauzl-2.9.2"
       sources."@types/yoga-layout-1.9.2"
-      sources."@types/zen-observable-0.8.3"
       sources."@wry/context-0.6.1"
       sources."@wry/equality-0.5.2"
       sources."@wry/trie-0.3.1"
@@ -77947,19 +78152,19 @@ in
       (sources."jsii-pacmak-1.37.0" // {
         dependencies = [
           sources."@jsii/check-node-1.37.0"
-          sources."codemaker-1.42.0"
+          sources."codemaker-1.43.0"
           sources."escape-string-regexp-4.0.0"
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.42.0" // {
+      (sources."jsii-reflect-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.42.0" // {
+      (sources."jsii-rosetta-1.43.0" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."yargs-16.2.0"
@@ -78016,6 +78221,7 @@ in
       sources."no-case-3.0.4"
       sources."node-fetch-2.6.6"
       sources."normalize-path-2.1.1"
+      sources."npm-7.24.2"
       sources."npm-run-path-4.0.1"
       sources."object-assign-4.1.1"
       sources."object-inspect-1.11.0"
@@ -78026,7 +78232,7 @@ in
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."oo-ascii-tree-1.42.0"
+      sources."oo-ascii-tree-1.43.0"
       sources."open-7.4.2"
       sources."optimism-0.16.1"
       sources."ora-5.4.1"
@@ -78205,7 +78411,7 @@ in
       sources."yocto-queue-0.1.0"
       sources."yoga-layout-prebuilt-1.10.0"
       sources."zen-observable-0.8.15"
-      sources."zen-observable-ts-1.1.0"
+      sources."zen-observable-ts-1.2.2"
       sources."zip-stream-4.1.0"
       sources."zod-1.11.17"
     ];
@@ -79238,7 +79444,7 @@ in
       sources."domutils-1.7.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enquirer-2.3.6"
@@ -79904,7 +80110,7 @@ in
       sources."svg-tags-1.0.0"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -80229,7 +80435,7 @@ in
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/unist-2.0.6"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -80289,7 +80495,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -80840,7 +81046,7 @@ in
       sources."supports-color-5.5.0"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -82201,7 +82407,7 @@ in
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/normalize-package-data-2.4.1"
       sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
@@ -82572,7 +82778,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -83853,7 +84059,7 @@ in
       sources."@types/geojson-7946.0.8"
       sources."@types/mapbox-gl-0.54.5"
       sources."@types/mime-types-2.1.1"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."@types/node-fetch-2.5.12"
       sources."@types/prop-types-15.7.4"
       sources."@types/rc-1.2.0"
@@ -83977,7 +84183,7 @@ in
       sources."duplexer3-0.1.4"
       sources."earcut-2.2.3"
       sources."electron-13.6.1"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
@@ -84560,7 +84766,7 @@ in
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."JSONStream-1.3.5"
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
@@ -84763,7 +84969,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.9.2"
       sources."abbrev-1.1.1"
@@ -85459,7 +85665,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -87641,7 +87847,7 @@ in
       sources."supports-color-8.1.1"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -87851,7 +88057,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/keyv-3.1.3"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/q-1.5.5"
       sources."@types/responselike-1.0.0"
       sources."@types/retry-0.12.1"
@@ -88311,7 +88517,7 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -89946,7 +90152,7 @@ in
       sources."@babel/traverse-7.16.0"
       sources."@babel/types-7.16.0"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/yauzl-2.9.2"
       sources."@types/yoga-layout-1.9.2"
@@ -89997,7 +90203,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.869402"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -90882,12 +91088,12 @@ in
       sources."@google-cloud/precise-date-2.0.4"
       sources."@google-cloud/projectify-2.1.1"
       sources."@google-cloud/promisify-2.0.4"
-      (sources."@google-cloud/pubsub-2.18.1" // {
+      (sources."@google-cloud/pubsub-2.18.2" // {
         dependencies = [
           sources."google-auth-library-7.10.2"
         ];
       })
-      sources."@grpc/grpc-js-1.4.3"
+      sources."@grpc/grpc-js-1.4.4"
       sources."@grpc/proto-loader-0.6.6"
       sources."@jsdevtools/ono-7.1.3"
       (sources."@npmcli/fs-1.0.0" // {
@@ -90921,7 +91127,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -92057,7 +92263,7 @@ in
       sources."@types/atob-2.1.2"
       sources."@types/bn.js-5.1.0"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/pbkdf2-3.1.0"
       sources."@types/secp256k1-4.0.3"
       sources."@types/through-0.0.30"
@@ -92868,7 +93074,7 @@ in
       sources."@types/keyv-3.1.3"
       sources."@types/mdast-3.0.10"
       sources."@types/ms-0.7.31"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/node-fetch-2.5.12"
       sources."@types/responselike-1.0.0"
       sources."@types/unist-2.0.6"
@@ -93026,7 +93232,7 @@ in
       sources."dotenv-8.6.0"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -94087,7 +94293,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/responselike-1.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-4.3.0"
@@ -94206,7 +94412,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."agent-base-6.0.2"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ajv-formats-2.1.1"
       sources."ansi-align-3.0.1"
       sources."ansi-escapes-4.3.2"
@@ -94676,7 +94882,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -95137,6 +95343,275 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  graphqurl = nodeEnv.buildNodePackage {
+    name = "graphqurl";
+    packageName = "graphqurl";
+    version = "1.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/graphqurl/-/graphqurl-1.0.1.tgz";
+      sha512 = "97Chda90OBIHCpH6iQHNYc9qTTADN0LOFbiMcRws3V5SottC/0yTDIQDgBzncZYVCkttyjAnT6YmVuNId7ymQA==";
+    };
+    dependencies = [
+      sources."@cronvel/get-pixels-3.4.0"
+      sources."@nodelib/fs.scandir-2.1.5"
+      sources."@nodelib/fs.stat-2.0.5"
+      sources."@nodelib/fs.walk-1.2.8"
+      sources."@oclif/command-1.8.0"
+      (sources."@oclif/config-1.17.0" // {
+        dependencies = [
+          sources."tslib-2.3.1"
+        ];
+      })
+      sources."@oclif/errors-1.3.4"
+      sources."@oclif/linewrap-1.0.0"
+      sources."@oclif/parser-3.8.5"
+      (sources."@oclif/plugin-help-3.2.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          (sources."wrap-ansi-4.0.0" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+        ];
+      })
+      sources."@oclif/screen-1.0.4"
+      sources."accepts-1.3.7"
+      sources."ansi-escapes-3.2.0"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-3.2.1"
+      sources."ansicolors-0.3.2"
+      sources."array-flatten-1.1.1"
+      sources."array-union-2.1.0"
+      sources."async-limiter-1.0.1"
+      sources."backo2-1.0.2"
+      (sources."body-parser-1.18.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."braces-3.0.2"
+      sources."bytes-3.0.0"
+      sources."cardinal-2.1.1"
+      sources."chalk-2.4.2"
+      sources."chroma-js-2.1.2"
+      (sources."clean-stack-3.0.1" // {
+        dependencies = [
+          sources."escape-string-regexp-4.0.0"
+        ];
+      })
+      (sources."cli-ux-4.9.3" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."clean-stack-2.2.0"
+          sources."fs-extra-7.0.1"
+          sources."indent-string-3.2.0"
+          sources."is-wsl-1.1.0"
+          sources."semver-5.7.1"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."content-disposition-0.5.2"
+      sources."content-type-1.0.4"
+      sources."cookie-0.3.1"
+      sources."cookie-signature-1.0.6"
+      (sources."cross-env-6.0.3" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."cwise-compiler-1.1.3"
+      sources."debug-4.3.2"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."dir-glob-3.0.1"
+      sources."ee-first-1.1.1"
+      sources."emoji-regex-8.0.0"
+      sources."encodeurl-1.0.2"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."etag-1.8.1"
+      sources."eventemitter3-3.1.2"
+      (sources."express-4.16.3" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."extract-stack-1.0.0"
+      sources."fast-glob-3.2.7"
+      sources."fastq-1.13.0"
+      sources."fill-range-7.0.1"
+      (sources."finalhandler-1.1.1" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."forwarded-0.2.0"
+      sources."fresh-0.5.2"
+      sources."fs-extra-8.1.0"
+      sources."glob-parent-5.1.2"
+      sources."globby-11.0.4"
+      sources."graceful-fs-4.2.8"
+      sources."graphql-15.4.0"
+      sources."graphql-language-service-interface-2.9.0"
+      sources."graphql-language-service-parser-1.10.0"
+      sources."graphql-language-service-types-1.8.2"
+      sources."graphql-language-service-utils-2.5.1"
+      sources."has-flag-3.0.0"
+      sources."http-errors-1.6.3"
+      sources."hyperlinker-1.0.0"
+      sources."iconv-lite-0.4.19"
+      sources."ignore-5.1.9"
+      sources."indent-string-4.0.0"
+      sources."inherits-2.0.3"
+      sources."iota-array-1.0.0"
+      sources."ipaddr.js-1.9.1"
+      sources."is-buffer-1.1.6"
+      sources."is-docker-2.2.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.3"
+      sources."is-number-7.0.0"
+      sources."is-wsl-2.2.0"
+      sources."isexe-2.0.0"
+      sources."isomorphic-fetch-3.0.0"
+      sources."isomorphic-ws-4.0.1"
+      sources."iterall-1.3.0"
+      sources."jpeg-js-0.4.3"
+      sources."jsonfile-4.0.0"
+      sources."lazyness-1.2.0"
+      sources."lodash-4.17.21"
+      sources."lodash._reinterpolate-3.0.0"
+      sources."lodash.template-4.5.0"
+      sources."lodash.templatesettings-4.2.0"
+      sources."lru-cache-6.0.0"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micromatch-4.0.4"
+      sources."mime-1.4.1"
+      sources."mime-db-1.50.0"
+      sources."mime-types-2.1.33"
+      sources."ms-2.1.2"
+      sources."ndarray-1.0.19"
+      sources."ndarray-pack-1.2.1"
+      sources."negotiator-0.6.2"
+      sources."nextgen-events-1.5.2"
+      sources."nice-try-1.0.5"
+      sources."node-bitmap-0.0.1"
+      sources."node-fetch-2.6.6"
+      sources."nullthrows-1.1.1"
+      sources."omggif-1.0.10"
+      sources."on-finished-2.3.0"
+      sources."open-7.3.1"
+      sources."parseurl-1.3.3"
+      sources."password-prompt-1.1.2"
+      sources."path-key-2.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
+      sources."picomatch-2.3.0"
+      sources."pngjs-5.0.0"
+      sources."proxy-addr-2.0.7"
+      sources."qs-6.5.1"
+      sources."queue-microtask-1.2.3"
+      sources."range-parser-1.2.1"
+      (sources."raw-body-2.3.2" // {
+        dependencies = [
+          sources."depd-1.1.1"
+          sources."http-errors-1.6.2"
+          sources."setprototypeof-1.0.3"
+        ];
+      })
+      sources."redeyed-2.1.1"
+      sources."reusify-1.0.4"
+      sources."run-parallel-1.2.0"
+      sources."safe-buffer-5.1.1"
+      sources."semver-7.3.5"
+      (sources."send-0.16.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."serve-static-1.13.2"
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.0"
+      sources."seventh-0.7.40"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."slash-3.0.0"
+      sources."statuses-1.4.0"
+      sources."string-kit-0.11.10"
+      sources."string-width-4.2.3"
+      sources."strip-ansi-6.0.1"
+      (sources."subscriptions-transport-ws-0.9.18" // {
+        dependencies = [
+          sources."ws-5.2.3"
+        ];
+      })
+      sources."supports-color-5.5.0"
+      (sources."supports-hyperlinks-1.0.1" // {
+        dependencies = [
+          sources."has-flag-2.0.0"
+        ];
+      })
+      sources."symbol-observable-1.2.0"
+      sources."terminal-kit-1.49.4"
+      sources."to-regex-range-5.0.1"
+      sources."tr46-0.0.3"
+      sources."tree-kit-0.7.4"
+      sources."treeify-1.1.0"
+      sources."tslib-1.14.1"
+      sources."type-is-1.6.18"
+      sources."uniq-1.0.1"
+      sources."universalify-0.1.2"
+      sources."unpipe-1.0.0"
+      sources."utils-merge-1.0.1"
+      sources."vary-1.1.2"
+      sources."vscode-languageserver-types-3.16.0"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-fetch-3.6.2"
+      sources."whatwg-url-5.0.0"
+      sources."which-1.3.1"
+      sources."widest-line-3.1.0"
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."ws-7.4.2"
+      sources."yallist-4.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "cURL for GraphQL - CLI and JS library for making GraphQL queries";
+      homepage = "https://github.com/hasura/graphqurl";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   grunt-cli = nodeEnv.buildNodePackage {
     name = "grunt-cli";
     packageName = "grunt-cli";
@@ -96352,7 +96827,7 @@ in
       sha512 = "p2QZA9o6uSOVVNRdhtLKx1c0DxKw6hZAJXx0Ubv6NkCTsWIxA4FZzVQd8mkSOF7oNbA5S6yLBQSHtDhaw8aRbg==";
     };
     dependencies = [
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/node-fetch-2.5.12"
       sources."ansi-styles-4.3.0"
       sources."async-3.2.0"
@@ -96628,7 +97103,7 @@ in
     dependencies = [
       sources."@fast-csv/format-4.3.5"
       sources."@fast-csv/parse-4.3.6"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."ajv-6.12.6"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -96637,7 +97112,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.1023.0"
+      sources."aws-sdk-2.1024.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -98167,7 +98642,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1023.0" // {
+      (sources."aws-sdk-2.1024.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-3.3.2"
@@ -100222,7 +100697,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -100536,7 +101011,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."enquirer-2.3.6"
@@ -103214,7 +103689,7 @@ in
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.14"
@@ -103510,7 +103985,7 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -104248,7 +104723,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.4"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -105150,7 +105625,7 @@ in
     };
     dependencies = [
       sources."@braintree/sanitize-url-3.1.0"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/yauzl-2.9.2"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -106196,7 +106671,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
@@ -106954,7 +107429,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -107463,10 +107938,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "12.0.0";
+    version = "12.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.0.tgz";
-      sha512 = "KkUu9W5BWE4JmNeuPEwDz5a5yBOoWSrWl4DbT1/jBm+ytpVzjO9NN2jAD0GydhHZV/Brgh4xgWtBiMZJi5dUxQ==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-12.0.1.tgz";
+      sha512 = "4CmLtohgLR3o06vvtiFXtiCxKa+13/ZqGmwvvk1nruvzwmTmFCucgJlraLO3CSL0tr+3F1owAV0fSpWkOnooFA==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.2"
@@ -107479,7 +107954,7 @@ in
       sources."@npmcli/move-file-1.1.2"
       sources."@npmcli/node-gyp-1.0.3"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.6"
+      sources."@npmcli/run-script-2.0.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
@@ -107487,7 +107962,6 @@ in
       sources."agent-base-6.0.2"
       sources."agentkeepalive-4.1.4"
       sources."aggregate-error-3.1.0"
-      sources."ajv-6.12.6"
       (sources."ansi-align-3.0.1" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
@@ -107502,13 +107976,7 @@ in
       sources."are-we-there-yet-1.1.7"
       sources."argparse-2.0.1"
       sources."array-union-2.1.0"
-      sources."asn1-0.2.6"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
-      sources."bcrypt-pbkdf-1.0.2"
       (sources."boxen-5.1.2" // {
         dependencies = [
           sources."ansi-regex-5.0.1"
@@ -107529,7 +107997,6 @@ in
         ];
       })
       sources."camelcase-6.2.0"
-      sources."caseless-0.12.0"
       sources."chalk-4.1.2"
       sources."chownr-2.0.0"
       sources."ci-info-2.0.0"
@@ -107542,50 +108009,39 @@ in
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."colors-1.0.3"
-      sources."combined-stream-1.0.8"
       sources."commander-6.2.1"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."dashdash-1.14.1"
       sources."debug-4.3.2"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
-      sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."dir-glob-3.0.1"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
       sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.1"
       sources."err-code-2.0.3"
       sources."escape-goat-2.1.1"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.7"
-      sources."fast-json-stable-stringify-2.1.0"
       sources."fast-memoize-2.5.2"
       sources."fastq-1.13.0"
       sources."figgy-pudding-3.5.2"
       sources."fill-range-7.0.1"
       sources."find-up-5.0.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
       sources."fp-and-or-0.1.3"
       sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
       sources."gauge-2.7.4"
       sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
-      sources."getpass-0.1.7"
       sources."glob-7.2.0"
       sources."glob-parent-5.1.2"
       (sources."global-dirs-3.0.0" // {
@@ -107596,20 +108052,17 @@ in
       sources."globby-11.0.4"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.8"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
       sources."hosted-git-info-4.0.2"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
-      sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
       sources."iconv-lite-0.6.3"
       sources."ignore-5.1.9"
-      sources."ignore-walk-3.0.4"
+      sources."ignore-walk-4.0.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -107632,20 +108085,14 @@ in
       sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."isstream-0.1.2"
       sources."jju-1.4.0"
       sources."js-yaml-4.1.0"
-      sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-parse-helpfulerror-1.0.3"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
       sources."json5-2.2.0"
       sources."jsonlines-0.1.1"
       sources."jsonparse-1.3.1"
-      sources."jsprim-1.4.1"
       sources."keyv-3.1.0"
       sources."kleur-3.0.3"
       sources."latest-version-5.1.0"
@@ -107670,8 +108117,6 @@ in
       sources."make-fetch-happen-9.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.4"
-      sources."mime-db-1.50.0"
-      sources."mime-types-2.1.33"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -107686,19 +108131,18 @@ in
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."negotiator-0.6.2"
-      sources."node-gyp-7.1.2"
+      sources."node-gyp-8.4.0"
       sources."nopt-5.0.0"
       sources."normalize-url-4.5.1"
       sources."npm-bundled-1.1.2"
       sources."npm-install-checks-4.0.0"
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.1.5"
-      sources."npm-packlist-2.2.2"
+      sources."npm-packlist-3.0.0"
       sources."npm-pick-manifest-6.1.1"
       sources."npm-registry-fetch-11.0.0"
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
-      sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."p-cancelable-1.1.0"
@@ -107711,12 +108155,11 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.3.5"
+      sources."pacote-12.0.2"
       sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-type-4.0.0"
-      sources."performance-now-2.1.0"
       sources."picomatch-2.3.0"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
@@ -107724,11 +108167,8 @@ in
       sources."promise-inflight-1.0.1"
       sources."promise-retry-2.0.1"
       sources."prompts-2.4.2"
-      sources."psl-1.8.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
       sources."pupa-2.1.1"
-      sources."qs-6.5.2"
       sources."queue-microtask-1.2.3"
       sources."rc-1.2.8"
       sources."rc-config-loader-4.0.0"
@@ -107737,7 +108177,6 @@ in
       sources."registry-auth-token-4.2.1"
       sources."registry-url-5.1.0"
       sources."remote-git-tags-3.0.0"
-      sources."request-2.88.2"
       sources."require-from-string-2.0.2"
       sources."responselike-1.0.2"
       sources."retry-0.12.0"
@@ -107763,7 +108202,6 @@ in
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.20"
       sources."spawn-please-1.0.0"
-      sources."sshpk-1.16.1"
       sources."ssri-8.0.1"
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
@@ -107773,25 +108211,15 @@ in
       sources."tar-6.1.11"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
-      sources."tough-cookie-2.5.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
       sources."type-fest-0.20.2"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
       sources."update-notifier-5.1.0"
-      sources."uri-js-4.4.1"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
       sources."validate-npm-package-name-3.0.0"
-      (sources."verror-1.10.0" // {
-        dependencies = [
-          sources."core-util-is-1.0.2"
-        ];
-      })
       sources."which-2.0.2"
       sources."wide-align-1.1.5"
       (sources."widest-line-3.1.0" // {
@@ -108440,7 +108868,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -110539,10 +110967,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "6.20.3";
+    version = "6.20.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.20.3.tgz";
-      sha512 = "t16XiTxKTO+QdpsT3hBnlNN33T1JDCi+dtcVrT8ckJHt8bDQW4ax9hOYe4jtz9tUIxT0JhzYeDiyd5fiGMnu+w==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-6.20.4.tgz";
+      sha512 = "t50posttANTjAqBfEapojvrD4JKPTcOiPOHxKIGLlcMYke4mKbOhDY+4asSToZI6e7fwQfQpPDPGFI+/qz7Z4A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -111898,7 +112326,7 @@ in
       sources."@types/glob-7.2.0"
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@webassemblyjs/ast-1.9.0"
@@ -111933,7 +112361,7 @@ in
       sources."ansi-align-2.0.0"
       sources."ansi-colors-3.2.4"
       sources."ansi-escapes-3.2.0"
-      sources."ansi-html-0.0.7"
+      sources."ansi-html-community-0.0.8"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
@@ -112314,7 +112742,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -113435,7 +113863,7 @@ in
           sources."range-parser-1.2.1"
         ];
       })
-      (sources."webpack-dev-server-3.11.2" // {
+      (sources."webpack-dev-server-3.11.3" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           sources."anymatch-2.0.0"
@@ -113707,7 +114135,7 @@ in
       sources."@redocly/openapi-core-1.0.0-beta.67"
       sources."@redocly/react-dropdown-aria-2.0.12"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.2"
@@ -114233,7 +114661,7 @@ in
       sources."@types/json-schema-7.0.9"
       sources."@types/minimatch-3.0.5"
       sources."@types/mocha-8.2.3"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."@types/node-fetch-2.5.12"
       sources."@types/vscode-1.62.0"
       sources."@typescript-eslint/eslint-plugin-4.33.0"
@@ -114573,7 +115001,7 @@ in
       sources."supports-color-5.5.0"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -115027,7 +115455,7 @@ in
         ];
       })
       sources."@serverless/template-1.1.4"
-      (sources."@serverless/utils-5.20.0" // {
+      (sources."@serverless/utils-5.20.1" // {
         dependencies = [
           sources."get-stream-6.0.1"
           sources."has-flag-4.0.0"
@@ -115046,7 +115474,7 @@ in
       sources."@types/keyv-3.1.3"
       sources."@types/lodash-4.14.176"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/request-2.48.7"
       sources."@types/request-promise-native-1.0.18"
       sources."@types/responselike-1.0.0"
@@ -115106,7 +115534,7 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.1023.0" // {
+      (sources."aws-sdk-2.1024.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -116470,10 +116898,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.754.0";
+    version = "1.757.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.754.0.tgz";
-      sha512 = "8wuzk1Qmni4x7KxMcnmMsW1JeXJaEruYX9VBvlq4zu5eTRdWYuWXJtWqMFtdhHcVESFomFKtdJZGa5rqLZg2Ng==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.757.0.tgz";
+      sha512 = "COB9DYQI/loKY5QQbvFWaIuWkKgP0FyC9JOLK0s9lKm9JeDmcSLCjQnCpH0CaUjqz9gPr8+sZ27iXbevzRPppg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -116497,7 +116925,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."accepts-1.3.7"
       sources."base64-arraybuffer-1.0.1"
       sources."base64id-2.0.0"
@@ -117745,7 +118173,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.1023.0" // {
+      (sources."aws-sdk-2.1024.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
@@ -118537,7 +118965,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-3.2.1"
       sources."array-union-2.1.0"
@@ -118741,7 +119169,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/pug-2.0.5"
       sources."@types/sass-1.43.0"
       sources."ansi-styles-4.3.0"
@@ -118831,7 +119259,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/pug-2.0.5"
       sources."@types/sass-1.43.0"
       sources."anymatch-3.1.2"
@@ -119833,7 +120261,7 @@ in
       sources."@textlint/utils-12.0.2"
       sources."@types/mdast-3.0.10"
       sources."@types/unist-2.0.6"
-      sources."ajv-8.6.3"
+      sources."ajv-8.7.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."argparse-1.0.10"
@@ -120906,7 +121334,7 @@ in
       sources."@types/cacheable-request-6.0.2"
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/keyv-3.1.3"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -121946,7 +122374,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-14.17.32"
+      sources."@types/node-14.17.33"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ansi-regex-5.0.1"
@@ -122227,7 +122655,7 @@ in
       sha512 = "N+ENrder8z9zJQF9UM7K3/1LcfVW60omqeyaQsu6GN1BGdCgPm8gdHssn7WRD7vx+ABKc82IE1+pJyHOPkwe+w==";
     };
     dependencies = [
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -122604,7 +123032,7 @@ in
     dependencies = [
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@vercel/build-utils-2.12.2"
       sources."@vercel/go-1.2.3"
       sources."@vercel/node-1.12.1"
@@ -122893,7 +123321,7 @@ in
       sources."supports-color-5.5.0"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."json-schema-traverse-1.0.0"
         ];
       })
@@ -123226,7 +123654,7 @@ in
       sources."domelementtype-2.2.0"
       sources."domhandler-4.2.2"
       sources."domutils-2.8.0"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."enhanced-resolve-5.8.3"
@@ -123398,7 +123826,7 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      (sources."terser-webpack-plugin-5.2.4" // {
+      (sources."terser-webpack-plugin-5.2.5" // {
         dependencies = [
           sources."serialize-javascript-6.0.0"
         ];
@@ -123796,7 +124224,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -124977,7 +125405,7 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/yauzl-2.9.2"
       sources."acorn-7.4.1"
       sources."acorn-jsx-5.3.2"
@@ -125456,7 +125884,7 @@ in
       sources."supports-color-7.2.0"
       (sources."table-6.7.3" // {
         dependencies = [
-          sources."ajv-8.6.3"
+          sources."ajv-8.7.1"
           sources."ansi-regex-5.0.1"
           sources."json-schema-traverse-1.0.0"
           sources."strip-ansi-6.0.1"
@@ -125541,7 +125969,7 @@ in
       sources."@types/eslint-scope-3.7.1"
       sources."@types/estree-0.0.50"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -125568,7 +125996,7 @@ in
       sources."caniuse-lite-1.0.30001278"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.3.890"
+      sources."electron-to-chromium-1.3.891"
       sources."enhanced-resolve-5.8.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -125594,7 +126022,6 @@ in
       sources."mime-types-2.1.33"
       sources."neo-async-2.6.2"
       sources."node-releases-2.0.1"
-      sources."p-limit-3.1.0"
       sources."picocolors-1.0.0"
       sources."punycode-2.1.1"
       sources."randombytes-2.1.0"
@@ -125610,11 +126037,10 @@ in
           sources."source-map-0.7.3"
         ];
       })
-      sources."terser-webpack-plugin-5.2.4"
+      sources."terser-webpack-plugin-5.2.5"
       sources."uri-js-4.4.1"
       sources."watchpack-2.2.0"
       sources."webpack-sources-3.2.1"
-      sources."yocto-queue-0.1.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -125708,7 +126134,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/http-proxy-1.17.7"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/retry-0.12.1"
       sources."accepts-1.3.7"
       sources."aggregate-error-3.1.0"
@@ -126084,7 +126510,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
       sources."ansi-regex-5.0.1"
@@ -126577,7 +127003,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      (sources."@npmcli/arborist-2.10.0" // {
+      (sources."@npmcli/arborist-4.0.4" // {
         dependencies = [
           sources."mkdirp-1.0.4"
           sources."semver-7.3.5"
@@ -126596,8 +127022,8 @@ in
         ];
       })
       sources."@npmcli/installed-package-contents-1.0.7"
-      sources."@npmcli/map-workspaces-1.0.4"
-      (sources."@npmcli/metavuln-calculator-1.1.1" // {
+      sources."@npmcli/map-workspaces-2.0.0"
+      (sources."@npmcli/metavuln-calculator-2.0.0" // {
         dependencies = [
           sources."semver-7.3.5"
         ];
@@ -126611,7 +127037,7 @@ in
       sources."@npmcli/node-gyp-1.0.3"
       sources."@npmcli/package-json-1.0.1"
       sources."@npmcli/promise-spawn-1.3.2"
-      sources."@npmcli/run-script-1.8.6"
+      sources."@npmcli/run-script-2.0.0"
       sources."@sindresorhus/is-0.7.0"
       sources."@tootallnate/once-1.1.2"
       sources."@types/expect-1.20.4"
@@ -126720,6 +127146,7 @@ in
       sources."code-point-at-1.1.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."color-support-1.1.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
       sources."commander-7.1.0"
@@ -126858,7 +127285,7 @@ in
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.2.1"
       sources."ignore-5.1.9"
-      sources."ignore-walk-3.0.4"
+      sources."ignore-walk-4.0.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
@@ -127010,7 +127437,7 @@ in
       sources."mute-stream-0.0.7"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
-      (sources."node-gyp-7.1.2" // {
+      (sources."node-gyp-8.4.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
           sources."env-paths-2.2.1"
@@ -127051,7 +127478,7 @@ in
           sources."semver-7.3.5"
         ];
       })
-      sources."npm-packlist-2.2.2"
+      sources."npm-packlist-3.0.0"
       (sources."npm-pick-manifest-6.1.1" // {
         dependencies = [
           sources."semver-7.3.5"
@@ -127106,9 +127533,15 @@ in
       })
       sources."p-some-4.1.0"
       sources."p-timeout-2.0.1"
+      (sources."p-transform-1.2.0" // {
+        dependencies = [
+          sources."debug-4.3.2"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."p-try-1.0.0"
       sources."package-json-5.0.0"
-      (sources."pacote-11.3.5" // {
+      (sources."pacote-12.0.2" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -127413,11 +127846,12 @@ in
         ];
       })
       sources."yeoman-doctor-5.0.0"
-      (sources."yeoman-environment-3.6.0" // {
+      (sources."yeoman-environment-3.7.0" // {
         dependencies = [
           sources."ansi-escapes-4.3.2"
-          sources."ansi-regex-2.1.1"
+          sources."ansi-regex-5.0.1"
           sources."ansi-styles-4.3.0"
+          sources."are-we-there-yet-2.0.0"
           sources."chalk-4.1.2"
           sources."cli-cursor-3.1.0"
           sources."cli-width-3.0.0"
@@ -127433,11 +127867,11 @@ in
             ];
           })
           sources."find-up-5.0.0"
-          (sources."gauge-2.7.4" // {
+          (sources."gauge-3.0.1" // {
             dependencies = [
-              sources."is-fullwidth-code-point-1.0.0"
-              sources."string-width-1.0.2"
-              sources."strip-ansi-3.0.1"
+              sources."is-fullwidth-code-point-2.0.0"
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
             ];
           })
           sources."get-stream-6.0.1"
@@ -127450,23 +127884,20 @@ in
           sources."ms-2.1.2"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
-          sources."npmlog-4.1.2"
+          sources."npmlog-5.0.1"
           sources."onetime-5.1.2"
           sources."p-limit-3.1.0"
           sources."p-locate-5.0.0"
           sources."path-exists-4.0.0"
           sources."path-key-3.1.1"
+          sources."readable-stream-3.6.0"
           sources."restore-cursor-3.1.0"
           sources."rxjs-7.4.0"
           sources."semver-7.3.5"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
           sources."string-width-4.2.3"
-          (sources."strip-ansi-6.0.1" // {
-            dependencies = [
-              sources."ansi-regex-5.0.1"
-            ];
-          })
+          sources."strip-ansi-6.0.1"
           sources."supports-color-7.2.0"
           sources."tslib-2.1.0"
           sources."type-fest-0.21.3"
@@ -127511,7 +127942,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/fs-extra-9.0.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-16.11.6"
+      sources."@types/node-16.11.7"
       sources."@types/node-fetch-2.5.12"
       sources."ansi-styles-4.3.0"
       sources."array-union-3.0.1"
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 79c7a650cff..4e2714fedd2 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,8 +1,6 @@
 { stdenv, lib, fetchzip, which, ocsigen_server, ocaml,
   lwt_react,
   opaline, ppx_deriving, findlib
-, ocaml-migrate-parsetree
-, ppx_tools_versioned
 , js_of_ocaml-ocamlbuild, js_of_ocaml-ppx, js_of_ocaml-ppx_deriving_json
 , js_of_ocaml-lwt
 , js_of_ocaml-tyxml
@@ -13,17 +11,15 @@
 stdenv.mkDerivation rec
 {
   pname = "eliom";
-  version = "8.6.0";
+  version = "8.9.0";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "0s1hpawwhqp4qcy8w1067n8c6zg8jcjpzplc39bjbb1ycqw667j9";
+    sha256 = "sha256:1b1vb3ilb54ffzb98mqa6zggqchsnjspbni8qxi6j42pbajp7p2l";
   };
 
   buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild
-    ocaml-migrate-parsetree
     js_of_ocaml-ppx_deriving_json opaline
-    ppx_tools_versioned
     ocamlnet
   ];
 
diff --git a/pkgs/development/python-modules/aenum/default.nix b/pkgs/development/python-modules/aenum/default.nix
index 64725e04d50..457a6007f8a 100644
--- a/pkgs/development/python-modules/aenum/default.nix
+++ b/pkgs/development/python-modules/aenum/default.nix
@@ -8,16 +8,17 @@
 
 buildPythonPackage rec {
   pname = "aenum";
-  version = "3.1.2";
+  version = "3.1.3";
+  format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "806dd4791298e19daff2cdfe7be3ae6d931d0d03097973f802b3ea55066f62dd";
+    sha256 = "sha256-HUlOTTs+PpU4mu5CAgPZRXdtJDDumj1PFi4mezp+w6Y=";
   };
 
   checkInputs = [
     pyparsing
-  ] ;
+  ];
 
   # py2 likes to reorder tests
   doCheck = isPy3k;
@@ -28,12 +29,14 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [ "aenum" ];
+  pythonImportsCheck = [
+    "aenum"
+  ];
 
   meta = with lib; {
     description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
-    maintainers = with maintainers; [ vrthra ];
-    license = licenses.bsd3;
     homepage = "https://github.com/ethanfurman/aenum";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ vrthra ];
   };
 }
diff --git a/pkgs/development/python-modules/agate/default.nix b/pkgs/development/python-modules/agate/default.nix
index a2b622dd211..04266bc3d88 100644
--- a/pkgs/development/python-modules/agate/default.nix
+++ b/pkgs/development/python-modules/agate/default.nix
@@ -1,37 +1,73 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k
-, six, pytimeparse, parsedatetime, Babel
-, isodate, python-slugify, leather
-, glibcLocales, nose, lxml, cssselect, unittest2 }:
+{ lib
+, Babel
+, buildPythonPackage
+, cssselect
+, fetchFromGitHub
+, glibcLocales
+, isodate
+, leather
+, lxml
+, nose
+, parsedatetime
+, PyICU
+, python-slugify
+, pytimeparse
+, pythonOlder
+, pytz
+, six
+}:
 
 buildPythonPackage rec {
   pname = "agate";
-  version = "1.6.1";
+  version = "1.6.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
-  # PyPI tarball does not include all test files
-  # https://github.com/wireservice/agate/pull/716
   src = fetchFromGitHub {
     owner = "wireservice";
     repo = pname;
     rev = version;
-    sha256 = "077zj8xad8hsa3nqywvf7ircirmx3krxdipl8wr3dynv3l3khcpl";
+    sha256 = "sha256-tuUoLvztCYHIPJTBgw1eByM0zfaHDyc+h7SWsxutKos=";
   };
 
   propagatedBuildInputs = [
-    six pytimeparse parsedatetime Babel
-    isodate python-slugify leather
+    Babel
+    isodate
+    leather
+    parsedatetime
+    python-slugify
+    pytimeparse
+    six
+  ];
+
+  checkInputs = [
+    cssselect
+    glibcLocales
+    lxml
+    nose
+    PyICU
+    pytz
   ];
 
-  checkInputs = [ glibcLocales nose lxml cssselect ]
-    ++ lib.optional (!isPy3k) unittest2;
+  postPatch = ''
+    # No Python 2 support, thus constraint is not needed
+    substituteInPlace setup.py \
+      --replace "'parsedatetime>=2.1,!=2.5,!=2.6'," "'parsedatetime>=2.1',"
+  '';
 
   checkPhase = ''
     LC_ALL="en_US.UTF-8" nosetests tests
   '';
 
+  pythonImportsCheck = [
+    "agate"
+  ];
+
   meta = with lib; {
-    description = "A Python data analysis library that is optimized for humans instead of machines";
-    homepage    = "https://github.com/wireservice/agate";
-    license     = with licenses; [ mit ];
+    description = "Python data analysis library that is optimized for humans instead of machines";
+    homepage = "https://github.com/wireservice/agate";
+    license = with licenses; [ mit ];
     maintainers = with maintainers; [ vrthra ];
   };
 }
diff --git a/pkgs/development/python-modules/airtouch4pyapi/default.nix b/pkgs/development/python-modules/airtouch4pyapi/default.nix
new file mode 100644
index 00000000000..193070ac726
--- /dev/null
+++ b/pkgs/development/python-modules/airtouch4pyapi/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "airtouch4pyapi";
+  version = "1.0.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "LonePurpleWolf";
+    repo = pname;
+    # https://github.com/LonePurpleWolf/airtouch4pyapi/issues/5
+    rev = "34783888846783c058fe79cec16feda45504f701";
+    sha256 = "17c7fm72p085pg9msvsfdggbskvm12a6jlb5bw1cndrqsqcrxywx";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  # Project has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "airtouch4pyapi" ];
+
+  meta = with lib; {
+    description = "Python API for Airtouch 4 controllers";
+    homepage = "https://github.com/LonePurpleWolf/airtouch4pyapi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/nassl/default.nix b/pkgs/development/python-modules/nassl/default.nix
index 0d3716ca289..b9e19439251 100644
--- a/pkgs/development/python-modules/nassl/default.nix
+++ b/pkgs/development/python-modules/nassl/default.nix
@@ -3,7 +3,8 @@
 , fetchurl
 , buildPythonPackage
 , pkgsStatic
-, openssl
+, openssl_1_1
+, openssl_1_0_2
 , invoke
 , tls-parser
 , cacert
@@ -36,7 +37,7 @@ let
     "enable-mdc2"
     "-fPIC"
   ];
-  opensslStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+  opensslStatic = (openssl_1_1.override nasslOpensslArgs).overrideAttrs (
     oldAttrs: rec {
       name = "openssl-${version}";
       version = "1.1.1h";
@@ -49,10 +50,24 @@ let
         "enable-tls1_3"
         "no-async"
       ];
+      patches = builtins.filter (
+        p: (builtins.baseNameOf (toString p)) != "macos-yosemite-compat.patch"
+      ) oldAttrs.patches;
       buildInputs = oldAttrs.buildInputs ++ [ zlibStatic cacert ];
+      meta = oldAttrs.meta // {
+        knownVulnerabilities = [
+          "CVE-2020-1971"
+          "CVE-2021-23840"
+          "CVE-2021-23841"
+          "CVE-2021-3449"
+          "CVE-2021-3450"
+          "CVE-2021-3711"
+          "CVE-2021-3712"
+        ];
+      };
     }
   );
-  opensslLegacyStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+  opensslLegacyStatic = (openssl_1_0_2.override nasslOpensslArgs).overrideAttrs (
     oldAttrs: rec {
       name = "openssl-${version}";
       version = "1.0.2e";
@@ -61,7 +76,9 @@ let
         sha256 = "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72";
       };
       configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon;
-      patches = [ ];
+      patches = builtins.filter (
+        p: (builtins.baseNameOf (toString p)) == "darwin64-arm64.patch"
+      ) oldAttrs.patches;
       buildInputs = oldAttrs.buildInputs ++ [ zlibStatic ];
       # openssl_1_0_2 needs `withDocs = false`
       outputs = lib.remove "doc" oldAttrs.outputs;
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
index 87544f1b089..3db08466522 100644
--- a/pkgs/development/python-modules/nbval/default.nix
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -11,7 +11,6 @@
 , glibcLocales
 , matplotlib
 , sympy
-, pytest-cov
 }:
 
 buildPythonPackage rec {
@@ -23,15 +22,10 @@ buildPythonPackage rec {
     sha256 = "cfefcd2ef66ee2d337d0b252c6bcec4023384eb32e8b9e5fcc3ac80ab8cd7d40";
   };
 
-  checkInputs = [
-    pytestCheckHook
-    matplotlib
-    sympy
-    pytest-cov
+  buildInputs = [
+    glibcLocales
   ];
 
-  buildInputs = [ glibcLocales ];
-
   propagatedBuildInputs = [
     coverage
     ipykernel
@@ -41,23 +35,35 @@ buildPythonPackage rec {
     six
   ];
 
-  pytestFlagsArray = [
-    "tests"
+  checkInputs = [
+    pytestCheckHook
+    matplotlib
+    sympy
+  ];
+
+  disabledTestPaths = [
+    "tests/test_ignore.py"
     # These are the main tests but they're fragile so skip them. They error
     # whenever matplotlib outputs any unexpected warnings, e.g. deprecation
     # warnings.
-    "--ignore=tests/test_unit_tests_in_notebooks.py"
+    "tests/test_unit_tests_in_notebooks.py"
     # Impure
-    "--ignore=tests/test_timeouts.py"
+    "tests/test_timeouts.py"
+    # No value for us
+    "tests/test_coverage.py"
   ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
+  pythonImportsCheck = [
+    "nbval"
+  ];
+
   meta = with lib; {
     description = "A py.test plugin to validate Jupyter notebooks";
     homepage = "https://github.com/computationalmodelling/nbval";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/python-ecobee-api/default.nix b/pkgs/development/python-modules/python-ecobee-api/default.nix
index dc35c0c022f..7a9d9edd91b 100644
--- a/pkgs/development/python-modules/python-ecobee-api/default.nix
+++ b/pkgs/development/python-modules/python-ecobee-api/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-ecobee-api";
-  version = "0.2.13";
+  version = "0.2.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7c39f5aac854a2fb8fb33f41b351769a92ff784bc6112e7a5c1b9e1949a0fefe";
+    sha256 = "sha256-QfVOgX/psFB/l9dPBcaHh+2v9+7LjDCUAvaEQjUrxmA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix
index 7f51ccac6a7..33f74d93246 100644
--- a/pkgs/development/python-modules/python-engineio/default.nix
+++ b/pkgs/development/python-modules/python-engineio/default.nix
@@ -1,28 +1,32 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchFromGitHub
+{ lib
+, stdenv
 , aiohttp
+, buildPythonPackage
 , eventlet
+, fetchFromGitHub
 , iana-etc
 , libredirect
 , mock
+, pytestCheckHook
+, pythonOlder
 , requests
 , six
 , tornado
 , websocket-client
-, websockets
-, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "4.2.1";
+  version = "4.3.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "v${version}";
-    sha256 = "sha256-aAoTeQZCtxddVBPwlyv2j4aACMO9p0vQ/ESkkv4E3VE=";
+    sha256 = "sha256-ohNRtceh0bHBlnGSFUckG5KzoLY8Q1jvpFee7T78Vto=";
   };
 
   checkInputs = [
@@ -32,7 +36,6 @@ buildPythonPackage rec {
     requests
     tornado
     websocket-client
-    websockets
     pytestCheckHook
   ];
 
@@ -43,11 +46,19 @@ buildPythonPackage rec {
     export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
       LD_PRELOAD=${libredirect}/lib/libredirect.so
   '';
-  postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
+
+  postCheck = ''
+    unset NIX_REDIRECTS LD_PRELOAD
+  '';
 
   # somehow effective log level does not change?
-  disabledTests = [ "test_logger" ];
-  pythonImportsCheck = [ "engineio" ];
+  disabledTests = [
+    "test_logger"
+  ];
+
+  pythonImportsCheck = [
+    "engineio"
+  ];
 
   meta = with lib; {
     description = "Python based Engine.IO client and server";
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index 5a672b2dec6..cd41899c581 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -1,4 +1,5 @@
 { lib
+, aiohttp
 , bidict
 , buildPythonPackage
 , fetchFromGitHub
@@ -6,22 +7,31 @@
 , msgpack
 , pytestCheckHook
 , python-engineio
+, pythonOlder
+, requests
+, websocket-client
 }:
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "5.4.0";
+  version = "5.4.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-socketio";
     rev = "v${version}";
-    sha256 = "sha256-0Q1R8XPciU5AEkj7Exlc906eyA5juYKzzA/Ygnzx7XU=";
+    sha256 = "sha256-qmC7AL2ZNB0D5p3c8ozacNMKc2COzYzPJfz6KXwWsd0=";
   };
 
   propagatedBuildInputs = [
+    aiohttp
     bidict
     python-engineio
+    requests
+    websocket-client
   ];
 
   checkInputs = [
@@ -30,7 +40,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "socketio" ];
+  pythonImportsCheck = [
+    "socketio"
+  ];
 
   meta = with lib; {
     description = "Python Socket.IO server and client";
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index e188a3ef868..382eb3c5a31 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -13,12 +13,14 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "13.7";
+  version = "13.8.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JN91RZ4zW5a6/6aZFnn4RL1CaXivWmnKQZoKxDpAYCw=";
+    sha256 = "sha256-sGaR5Vw1lDJn7mNtmqcCs1eRVdLzLg4tbX8R8LXnJ/A=";
   };
 
   propagatedBuildInputs = [
@@ -45,7 +47,9 @@ buildPythonPackage rec {
   # tests not included with release
   doCheck = false;
 
-  pythonImportsCheck = [ "telegram" ];
+  pythonImportsCheck = [
+    "telegram"
+  ];
 
   meta = with lib; {
     description = "Python library to interface with the Telegram Bot API";
diff --git a/pkgs/development/python-modules/pyturbojpeg/default.nix b/pkgs/development/python-modules/pyturbojpeg/default.nix
index 84b3a9bc5e9..a357e45a5fa 100644
--- a/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -1,21 +1,22 @@
 { lib
 , stdenv
-, python
 , buildPythonPackage
 , fetchPypi
-, substituteAll
 , libjpeg_turbo
 , numpy
+, python
+, substituteAll
 }:
 
 buildPythonPackage rec {
   pname = "pyturbojpeg";
-  version = "1.6.2";
+  version = "1.6.3";
+  format = "setuptools";
 
   src = fetchPypi {
     pname = "PyTurboJPEG";
     inherit version;
-    sha256 = "sha256-gOf/i2OyNtB3oIATXzijRUnhEaMlHRvwWXPguqHDG1A=";
+    sha256 = "sha256-5g9MQB7vpeuorVGExt0scHtLdrWlkuLOZMT38FhAsi4=";
   };
 
   patches = [
@@ -34,7 +35,9 @@ buildPythonPackage rec {
     ${python.interpreter} -c 'from turbojpeg import TurboJPEG; TurboJPEG()'
   '';
 
-  pythonImportsCheck = [ "turbojpeg" ];
+  pythonImportsCheck = [
+    "turbojpeg"
+  ];
 
   meta = with lib; {
     description = "A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
diff --git a/pkgs/development/python-modules/rdflib/default.nix b/pkgs/development/python-modules/rdflib/default.nix
index 5f17bbd03c3..2ffe190a472 100644
--- a/pkgs/development/python-modules/rdflib/default.nix
+++ b/pkgs/development/python-modules/rdflib/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , html5lib
@@ -47,6 +48,11 @@ buildPythonPackage rec {
     "test_bad_password"
     "test_service"
     "testGuessFormatForParse"
+  ] ++ lib.optional stdenv.isDarwin [
+    # Require loopback network access
+    "test_sparqlstore"
+    "test_sparqlupdatestore_mock"
+    "TestGraphHTTP"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index 2b327174524..ee96efe5e01 100644
--- a/pkgs/development/python-modules/streamz/default.nix
+++ b/pkgs/development/python-modules/streamz/default.nix
@@ -1,44 +1,39 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, fetchpatch
 , confluent-kafka
 , distributed
+, fetchPypi
 , flaky
 , graphviz
 , networkx
-, pytest
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
 , requests
 , six
 , toolz
 , tornado
 , zict
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "streamz";
-  version = "0.6.2";
+  version = "0.6.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04446ece273c041506b1642bd3d8380367a8372196be4d6d6d03faafadc590b2";
+    sha256 = "sha256-0wZ1ldLFRAIL9R+gLfwsFbL+gvdORAkYWNjnDmeafm8=";
   };
 
-  patches = [
-    # Fix apply import from dask
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/python-streamz/streamz/pull/423.patch";
-      sha256 = "sha256-CR+uRvzaFu9WQ633tbvX3gAnudhlVN6VvmxKiR37diw=";
-    })
-  ];
-
   propagatedBuildInputs = [
     networkx
-    tornado
+    six
     toolz
+    tornado
     zict
-    six
   ];
 
   checkInputs = [
@@ -46,25 +41,31 @@ buildPythonPackage rec {
     distributed
     flaky
     graphviz
-    pytest
+    pytest-asyncio
+    pytestCheckHook
     requests
   ];
 
-  disabled = pythonOlder "3.6";
+  disabledTests = [
+    # Disable test_tcp_async because fails on sandbox build
+    "test_partition_timeout"
+    "test_tcp_async"
+    "test_tcp"
+  ];
+
+  disabledTestPaths = [
+    # Disable kafka tests
+    "streamz/tests/test_kafka.py"
+  ];
 
-  # Disable test_tcp_async because fails on sandbox build
-  # disable kafka tests
-  checkPhase = ''
-    pytest --deselect=streamz/tests/test_sources.py::test_tcp_async \
-      --deselect=streamz/tests/test_sources.py::test_tcp \
-      --deselect=streamz/tests/test_core.py::test_partition_timeout \
-      --ignore=streamz/tests/test_kafka.py
-  '';
+  pythonImportsCheck = [
+    "streamz"
+  ];
 
   meta = with lib; {
     description = "Pipelines to manage continuous streams of data";
     homepage = "https://github.com/python-streamz/streamz";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index c077265bf63..e6c103651e3 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -283,6 +283,7 @@ let
     bazelBuildFlags = [
       "--config=opt" # optimize using the flags set in the configure phase
     ]
+    ++ lib.optionals stdenv.cc.isClang [ "--cxxopt=-x" "--cxxopt=c++" "--host_cxxopt=-x" "--host_cxxopt=c++" ]
     ++ lib.optionals (mklSupport) [ "--config=mkl" ];
 
     bazelTarget = "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow";
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index b96d4efd44b..af650f6db3b 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -1,23 +1,38 @@
-{ lib, buildPythonPackage, fetchFromGitHub, gevent, isPy27, python }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, gevent
+, isPy27
+, python
+}:
 
 buildPythonPackage rec {
   pname = "yappi";
-  version = "1.3.0";
+  version = "1.3.2";
+
   disabled = isPy27; # invalid syntax
 
   src = fetchFromGitHub {
     owner = "sumerc";
     repo = pname;
-    rev = "30f94024a0e2e4fa21c220de6a0dc97b4cb2c319";
-    sha256 = "1kvwl3y3c2hivf9y2x1q1s8a2y724iwqd1krq6ryvsbg3inyh8qw";
+    rev = "8bf7a650066f104f59c3cae4a189ec15e7d51c8c";
+    sha256 = "1q8lr9n0lny2g3mssy3mksbl9m4k1kqn1a4yv1hfqsahxdvpw2dp";
   };
 
   patches = [ ./tests.patch ];
-  checkInputs = [ gevent ];
+
+  checkInputs = [
+    gevent
+  ];
+
   checkPhase = ''
     ${python.interpreter} run_tests.py
   '';
 
+  pythonImportsCheck = [
+    "yappi"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/sumerc/yappi";
     description = "Python profiler that supports multithreading and measuring CPU time";
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 8bf781ef3a4..9a86075c790 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -1,19 +1,20 @@
 { lib
 , buildPythonPackage
-, isPy27
 , fetchPypi
+, pythonOlder
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "0.19.3";
+  version = "0.19.4";
+  format = "setuptools";
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfd0271f7177173cea9c255730151a10a2fe4a32f9accd2fe31e7645936c90c5";
+    sha256 = "sha256-AAGUfa91f9aquPLQZs9kQDbZXrBrxjSBFdWIrxB5D/I=";
   };
 
   propagatedBuildInputs = [
@@ -22,10 +23,12 @@ buildPythonPackage rec {
 
   doCheck = false; # requires network access
 
-  pythonImportsCheck = [ "ytmusicapi" ];
+  pythonImportsCheck = [
+    "ytmusicapi"
+  ];
 
   meta = with lib; {
-    description = "Unofficial API for YouTube Music";
+    description = "Python API for YouTube Music";
     homepage = "https://github.com/sigma67/ytmusicapi";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 2c37a5281b7..a142d9a9d9b 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.42.1";
+  version = "1.43.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "sha256-lhpljK4odn+j+Cb3sp1/cMnBRrLNhWxVoRIO2PDqMHo=";
+    sha256 = "sha256-8aIKFLP1x9B5IMuyQ12LLIq79of4XwCdmDwae4T5MPg=";
   };
 
-  vendorSha256 = "sha256-Z4lNGWLKagKHbVOy6MiKyuSlXwUCYlkvnvk5zS4vl1A=";
+  vendorSha256 = "sha256-Mxy9VFBwcxyQtnhwuOFWK+0y0pQQDdqtoj0e2UXEo5k=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/img/default.nix b/pkgs/development/tools/img/default.nix
index 5b0a40adf23..17daf49ff23 100644
--- a/pkgs/development/tools/img/default.nix
+++ b/pkgs/development/tools/img/default.nix
@@ -50,6 +50,6 @@ buildGoModule rec {
     description = "Standalone, daemon-less, unprivileged Dockerfile and OCI compatible container image builder. ";
     license = licenses.mit;
     homepage = "https://github.com/genuinetools/img";
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ bryanasdev000 ];
   };
 }
diff --git a/pkgs/games/the-powder-toy/default.nix b/pkgs/games/the-powder-toy/default.nix
index 6d7b4bccc95..ba2112617bb 100644
--- a/pkgs/games/the-powder-toy/default.nix
+++ b/pkgs/games/the-powder-toy/default.nix
@@ -18,6 +18,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm 755 powder $out/bin/powder
+
+    mkdir -p $out/share/applications
+    mv ../resources/powder.desktop $out/share/applications
+    mv ../resources $out/share
   '';
 
   propagatedBuildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Cocoa ];
diff --git a/pkgs/misc/jackaudio/default.nix b/pkgs/misc/jackaudio/default.nix
index 7474a304f03..92574231549 100644
--- a/pkgs/misc/jackaudio/default.nix
+++ b/pkgs/misc/jackaudio/default.nix
@@ -26,14 +26,14 @@ let
   optLibopus = shouldUsePkg libopus;
 in
 stdenv.mkDerivation rec {
-  name = "${prefix}jack2-${version}";
-  version = "1.9.17";
+  pname = "${prefix}jack2";
+  version = "1.9.19";
 
   src = fetchFromGitHub {
     owner = "jackaudio";
     repo = "jack2";
     rev = "v${version}";
-    sha256 = "sha256-T6UJpLsXrsIL3HaChfVP52w0v9DCs/sJqty2/kAWNfE=";
+    sha256 = "01s8i64qczxqawgrzrw19asaqmcspf5l2h3203xzg56wnnhhzcw7";
   };
 
   nativeBuildInputs = [ pkg-config python makeWrapper wafHook ];
diff --git a/pkgs/misc/vscode-extensions/cpptools/default.nix b/pkgs/misc/vscode-extensions/cpptools/default.nix
index 559cb70b387..003846fb2c4 100644
--- a/pkgs/misc/vscode-extensions/cpptools/default.nix
+++ b/pkgs/misc/vscode-extensions/cpptools/default.nix
@@ -5,8 +5,6 @@
 , gdbUseFixed ? true, gdb # The gdb default setting will be fixed to specified. Use version from `PATH` otherwise.
 }:
 
-assert gdbUseFixed -> null != gdb;
-
 /*
   Note that this version of the extension still has some nix specific issues
   which could not be fixed merely by patching (inside a C# dll).
diff --git a/pkgs/misc/vscode-extensions/default.nix b/pkgs/misc/vscode-extensions/default.nix
index 714d53cc290..10fe88c06f1 100644
--- a/pkgs/misc/vscode-extensions/default.nix
+++ b/pkgs/misc/vscode-extensions/default.nix
@@ -971,19 +971,19 @@ let
       };
 
       jnoortheen.nix-ide = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "nix-ide";
+          publisher = "jnoortheen";
+          version = "0.1.18";
+          sha256 = "sha256-dmmx/u+hRQfY/MCIaSdcVtbYnf5cLCDUwr75heQxcuw=";
+        };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/jnoortheen.nix-ide/changelog";
           description = "Nix language support with formatting and error report";
           downloadPage = "https://marketplace.visualstudio.com/items?itemName=jnoortheen.nix-ide";
           homepage = "https://github.com/jnoortheen/vscode-nix-ide";
           license = licenses.mit;
-          maintainers = with maintainers; [ ];
-        };
-        mktplcRef = {
-          name = "nix-ide";
-          publisher = "jnoortheen";
-          version = "0.1.16";
-          sha256 = "04ky1mzyjjr1mrwv3sxz4mgjcq5ylh6n01lvhb19h3fmwafkdxbp";
+          maintainers = with maintainers; [ SuperSandro2000 ];
         };
       };
 
@@ -1435,6 +1435,18 @@ let
         };
       };
 
+      stkb.rewrap = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          publisher = "stkb";
+          name = "rewrap";
+          version = "1.14.0";
+          sha256 = "qRwKX36a1aLzE1tqaOkH7JfE//pvKdPZ07zasPF3Dl4=";
+        };
+        meta = with lib; {
+          license = licenses.asl20;
+        };
+      };
+
       streetsidesoftware.code-spell-checker = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "code-spell-checker";
diff --git a/pkgs/misc/vscode-extensions/remote-ssh/default.nix b/pkgs/misc/vscode-extensions/remote-ssh/default.nix
index ab59527d82b..3bfc94bb6ea 100644
--- a/pkgs/misc/vscode-extensions/remote-ssh/default.nix
+++ b/pkgs/misc/vscode-extensions/remote-ssh/default.nix
@@ -1,6 +1,7 @@
 { lib
 , vscode-utils
-, useLocalExtensions ? false}:
+, useLocalExtensions ? false
+}:
 # Note that useLocalExtensions requires that vscode-server is not running
 # on host. If it is, you'll need to remove $HOME/.vscode-server,
 # and redo the install by running "Connect to host" on client
@@ -32,24 +33,22 @@ let
     ''}
   '';
 in
-  buildVscodeMarketplaceExtension {
-    mktplcRef = {
-      name = "remote-ssh";
-      publisher = "ms-vscode-remote";
-      version = "0.65.7";
-      sha256 = "ae86c4be79fc5af747bb1f1aa5841221af80ee7476cc2f1c9ac277fa2fa1d683";
-    };
+buildVscodeMarketplaceExtension {
+  mktplcRef = {
+    name = "remote-ssh";
+    publisher = "ms-vscode-remote";
+    version = "0.66.1";
+    sha256 = "sha256-+v4UnGRG5xOc8k0IzvHUBHa128fhgd3jcmEuciiMQmI=";
+  };
 
-    postPatch = ''
-      substituteInPlace "out/extension.js" \
-        --replace "# install extensions" '${patch}'
-    '';
+  postPatch = ''
+    substituteInPlace "out/extension.js" \
+      --replace "# install extensions" '${patch}'
+  '';
 
-    meta = with lib; {
-      description ="Use any remote machine with a SSH server as your development environment.";
-      license = licenses.unfree;
-      maintainers = with maintainers; [
-        tbenst
-      ];
-    };
-  }
+  meta = with lib; {
+    description = "Use any remote machine with a SSH server as your development environment.";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ SuperSandro2000 tbenst ];
+  };
+}
diff --git a/pkgs/os-specific/bsd/netbsd/default.nix b/pkgs/os-specific/bsd/netbsd/default.nix
index 8f24d28409f..5fd9bbc51a0 100644
--- a/pkgs/os-specific/bsd/netbsd/default.nix
+++ b/pkgs/os-specific/bsd/netbsd/default.nix
@@ -508,7 +508,7 @@ in lib.makeScopeWithSplicing
     nativeBuildInputs = with buildPackages.netbsd; [
       bsdSetupHook netbsdSetupHook
       makeMinimal
-      install mandoc groff nbperf
+      install mandoc groff nbperf rsync
     ];
     makeFlags = defaultMakeFlags ++ [ "TOOLDIR=$(out)" ];
     extraPaths = with self; [
@@ -674,7 +674,7 @@ in lib.makeScopeWithSplicing
     nativeBuildInputs = with buildPackages.netbsd; [
       bsdSetupHook netbsdSetupHook
       makeMinimal
-      byacc install tsort lorder mandoc statHook
+      byacc install tsort lorder mandoc statHook rsync
     ];
     buildInputs = with self; [ headers ];
     SHLIBINSTALLDIR = "$(out)/lib";
@@ -707,7 +707,7 @@ in lib.makeScopeWithSplicing
     sha256 = "0pq05k3dj0dfsczv07frnnji92mazmy2qqngqbx2zgqc1x251414";
     nativeBuildInputs = with buildPackages.netbsd; [
       bsdSetupHook netbsdSetupHook
-      makeMinimal install tsort lorder mandoc statHook nbperf tic
+      makeMinimal install tsort lorder mandoc statHook nbperf tic rsync
     ];
     buildInputs = with self; compatIfNeeded;
     SHLIBINSTALLDIR = "$(out)/lib";
diff --git a/pkgs/os-specific/linux/intel-cmt-cat/default.nix b/pkgs/os-specific/linux/intel-cmt-cat/default.nix
new file mode 100644
index 00000000000..748ae5b5267
--- /dev/null
+++ b/pkgs/os-specific/linux/intel-cmt-cat/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  version = "4.2.0";
+  pname = "intel-cmt-cat";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "intel-cmt-cat";
+    rev = "v${version}";
+    sha256 = "sha256-k66FZI76d9HcWEMwEgOlObdPmRhuK5h2GKXOzUY0BKQ=";
+  };
+
+  enableParallelBuilding = true;
+
+  makeFlags = [ "PREFIX=$(out)" "NOLDCONFIG=y" ];
+
+  meta = with lib; {
+    description = "User space software for Intel(R) Resource Director Technology";
+    homepage = "https://github.com/intel/intel-cmt-cat";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ arkivm ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/os-specific/linux/sgx-sdk/default.nix b/pkgs/os-specific/linux/sgx-sdk/default.nix
new file mode 100644
index 00000000000..130fd12cbb9
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx-sdk/default.nix
@@ -0,0 +1,159 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchurl
+, fetchFromGitHub
+, callPackage
+, autoconf
+, automake
+, binutils
+, cmake
+, file
+, git
+, libtool
+, nasm
+, ncurses
+, ocaml
+, ocamlPackages
+, openssl
+, perl
+, python3
+, texinfo
+, which
+, writeShellScript
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sgx-sdk";
+  version = "2.14";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "linux-sgx";
+    rev = "0cea078f17a24fb807e706409972d77f7a958db9";
+    sha256 = "1cr2mkk459s270ng0yddgcryi0zc3dfmg9rmdrdh9mhy2mc1kx0g";
+    fetchSubmodules = true;
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "replace-bin-cp-with-cp.patch";
+      url = "https://github.com/intel/linux-sgx/commit/e0db5291d46d1c124980719d63829d65f89cf2c7.patch";
+      sha256 = "0xwlpm1r4rl4anfhjkr6fgz0gcyhr0ng46fv8iw9hfsh891yqb7z";
+    })
+    (fetchpatch {
+      name = "sgx_ippcp.h.patch";
+      url = "https://github.com/intel/linux-sgx/commit/e5929083f8161a8e7404afc0577936003fbb9d0b.patch";
+      sha256 = "12bgs9rxlq82hn5prl9qz2r4mwypink8hzdz4cki4k4cmkw961f5";
+    })
+  ];
+  postPatch = ''
+    patchShebangs ./linux/installer/bin/build-installpkg.sh \
+      ./linux/installer/common/sdk/createTarball.sh \
+      ./linux/installer/common/sdk/install.sh
+  '';
+
+  dontConfigure = true;
+
+  # SDK built with stackprotector produces broken enclaves which crash at runtime.
+  # Disable all to be safe, SDK build configures compiler mitigations manually.
+  hardeningDisable = [ "all" ];
+
+  nativeBuildInputs = [
+    cmake
+    git
+    ocaml
+    ocamlPackages.ocamlbuild
+    perl
+    python3
+    texinfo
+    nasm
+    file
+    ncurses
+    autoconf
+    automake
+  ];
+
+  buildInputs = [
+    libtool
+    openssl
+  ];
+
+  BINUTILS_DIR = "${binutils}/bin";
+
+  # Build external/ippcp_internal first. The Makefile is rewritten to make the
+  # build faster by splitting different versions of ipp-crypto builds and to
+  # avoid patching the Makefile for reproducibility issues.
+  buildPhase = let
+    ipp-crypto-no_mitigation = callPackage (import ./ipp-crypto.nix) {};
+
+    sgx-asm-pp = "python ${src}/build-scripts/sgx-asm-pp.py --assembler=nasm";
+
+    nasm-load = writeShellScript "nasm-load" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=LOAD $@";
+    ipp-crypto-cve_2020_0551_load = callPackage (import ./ipp-crypto.nix) {
+      extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-load}" ];
+    };
+
+    nasm-cf = writeShellScript "nasm-cf" "${sgx-asm-pp} --MITIGATION-CVE-2020-0551=CF $@";
+    ipp-crypto-cve_2020_0551_cf = callPackage (import ./ipp-crypto.nix) {
+      extraCmakeFlags = [ "-DCMAKE_ASM_NASM_COMPILER=${nasm-cf}" ];
+    };
+  in ''
+    cd external/ippcp_internal
+
+    mkdir -p lib/linux/intel64/no_mitigation
+    cp ${ipp-crypto-no_mitigation}/lib/intel64/libippcp.a lib/linux/intel64/no_mitigation
+    chmod a+w lib/linux/intel64/no_mitigation/libippcp.a
+    cp ${ipp-crypto-no_mitigation}/include/* ./inc
+
+    mkdir -p lib/linux/intel64/cve_2020_0551_load
+    cp ${ipp-crypto-cve_2020_0551_load}/lib/intel64/libippcp.a lib/linux/intel64/cve_2020_0551_load
+    chmod a+w lib/linux/intel64/cve_2020_0551_load/libippcp.a
+
+    mkdir -p lib/linux/intel64/cve_2020_0551_cf
+    cp ${ipp-crypto-cve_2020_0551_cf}/lib/intel64/libippcp.a lib/linux/intel64/cve_2020_0551_cf
+    chmod a+w lib/linux/intel64/cve_2020_0551_cf/libippcp.a
+
+    rm -f ./inc/ippcp.h
+    patch ${ipp-crypto-no_mitigation}/include/ippcp.h -i ./inc/ippcp20u3.patch -o ./inc/ippcp.h
+
+    mkdir -p license
+    cp ${ipp-crypto-no_mitigation.src}/LICENSE ./license
+
+    # Build the SDK installation package.
+    cd ../..
+
+    # Nix patches make so that $(SHELL) defaults to "sh" instead of "/bin/sh".
+    # The build uses $(SHELL) as an argument to file -L which requires a path.
+    make SHELL=$SHELL sdk_install_pkg
+
+    runHook postBuild
+  '';
+
+  postBuild = ''
+    patchShebangs ./linux/installer/bin/sgx_linux_x64_sdk_*.bin
+  '';
+
+  installPhase = ''
+    echo -e 'no\n'$out | ./linux/installer/bin/sgx_linux_x64_sdk_*.bin
+  '';
+
+  dontFixup = true;
+
+  doInstallCheck = true;
+  installCheckInputs = [ which ];
+  installCheckPhase = ''
+    source $out/sgxsdk/environment
+    cd SampleCode/SampleEnclave
+    make SGX_MODE=SGX_SIM
+    ./app
+  '';
+
+  meta = with lib; {
+    description = "Intel SGX SDK for Linux built with IPP Crypto Library";
+    homepage = "https://github.com/intel/linux-sgx";
+    maintainers = with maintainers; [ sbellem arturcygan ];
+    platforms = [ "x86_64-linux" ];
+    license = with licenses; [ bsd3 ];
+  };
+}
diff --git a/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix b/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix
new file mode 100644
index 00000000000..52cef4f8281
--- /dev/null
+++ b/pkgs/os-specific/linux/sgx-sdk/ipp-crypto.nix
@@ -0,0 +1,24 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, python3
+, nasm
+, extraCmakeFlags ? []
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ipp-crypto";
+  version = "2020_update3";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "ipp-crypto";
+    rev = "ipp-crypto_${version}";
+    sha256 = "02vlda6mlhbd12ljzdf65klpx4kmx1ylch9w3yllsiya4hwqzy4b";
+  };
+
+  cmakeFlags = [ "-DARCH=intel64" ] ++ extraCmakeFlags;
+
+  nativeBuildInputs = [ cmake python3 nasm ];
+}
diff --git a/pkgs/servers/antennas/default.nix b/pkgs/servers/antennas/default.nix
new file mode 100644
index 00000000000..ae0e22e0f21
--- /dev/null
+++ b/pkgs/servers/antennas/default.nix
@@ -0,0 +1,34 @@
+{ lib, mkYarnPackage, fetchFromGitHub, nodejs }:
+
+mkYarnPackage rec {
+  pname = "antennas";
+  version = "unstable-2021-01-21";
+
+  src = fetchFromGitHub {
+    owner = "TheJF";
+    repo = "antennas";
+    rev = "5e1f7375004001255e3daef7d48f45af321c7a52";
+    sha256 = "0bahn4y0chk70x822nn32ya7kmn9x15jb80xa544y501x1s7w981";
+  };
+
+  preFixup = ''
+    mkdir -p $out/bin
+    chmod a+x $out/libexec/antennas/deps/antennas/index.js
+    sed -i '1i#!${nodejs}/bin/node' $out/libexec/antennas/deps/antennas/index.js
+    ln -s $out/libexec/antennas/deps/antennas/index.js $out/bin/antennas
+  '';
+
+  # The --production flag disables the devDependencies.
+  yarnFlags = [ "--offline" "--production" ];
+  yarnLock = ./yarn.lock;
+  packageJSON = ./package.json;
+  yarnNix = ./yarn.nix;
+
+  meta = with lib; {
+    description = "HDHomeRun emulator for Plex DVR to connect to Tvheadend. ";
+    homepage = "https://github.com/TheJF/antennas";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bachp ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/antennas/package.json b/pkgs/servers/antennas/package.json
new file mode 100644
index 00000000000..1caca745c91
--- /dev/null
+++ b/pkgs/servers/antennas/package.json
@@ -0,0 +1,20 @@
+{
+  "name": "antennas",
+  "version": "3.1.0",
+  "description": "HDHomeRun emulator for Plex DVR to connect to Tvheadend.",
+  "main": "index.js",
+  "repository": "https://github.com/thejf/antennas",
+  "author": "Jean-Francois Arseneau",
+  "license": "MIT",
+  "dependencies": {
+    "js-yaml": "^3.13.1",
+    "koa": "^2.5.0",
+    "koa-logger": "^3.2.0",
+    "koa-request": "^1.0.0",
+    "koa-router": "^7.4.0",
+    "koa-static": "^4.0.2",
+    "node-ssdp": "^3.3.0",
+    "request": "^2.85.0",
+    "request-promise-native": "^1.0.5"
+  }
+}
diff --git a/pkgs/servers/antennas/yarn.lock b/pkgs/servers/antennas/yarn.lock
new file mode 100644
index 00000000000..587d9dbe9d7
--- /dev/null
+++ b/pkgs/servers/antennas/yarn.lock
@@ -0,0 +1,703 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+accepts@^1.2.2:
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2"
+  dependencies:
+    mime-types "~2.1.18"
+    negotiator "0.6.1"
+
+ajv@^5.1.0:
+  version "5.5.2"
+  resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+  dependencies:
+    co "^4.6.0"
+    fast-deep-equal "^1.0.0"
+    fast-json-stable-stringify "^2.0.0"
+    json-schema-traverse "^0.3.0"
+
+ansi-regex@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-styles@^2.2.1:
+  version "2.2.1"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+any-promise@^1.0.0, any-promise@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
+
+argparse@^1.0.7:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
+  dependencies:
+    sprintf-js "~1.0.2"
+
+asn1@~0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+async@^2.6.0:
+  version "2.6.0"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4"
+  dependencies:
+    lodash "^4.14.0"
+
+asynckit@^0.4.0:
+  version "0.4.0"
+  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.6.0:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289"
+
+bcrypt-pbkdf@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+  dependencies:
+    tweetnacl "^0.14.3"
+
+bluebird@^3.5.1:
+  version "3.5.1"
+  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9"
+
+boom@4.x.x:
+  version "4.3.1"
+  resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+  dependencies:
+    hoek "4.x.x"
+
+boom@5.x.x:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+  dependencies:
+    hoek "4.x.x"
+
+bytes@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a"
+
+caseless@~0.12.0:
+  version "0.12.0"
+  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+chalk@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+  dependencies:
+    ansi-styles "^2.2.1"
+    escape-string-regexp "^1.0.2"
+    has-ansi "^2.0.0"
+    strip-ansi "^3.0.0"
+    supports-color "^2.0.0"
+
+co@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+combined-stream@1.0.6, combined-stream@~1.0.5:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818"
+  dependencies:
+    delayed-stream "~1.0.0"
+
+content-disposition@~0.5.0:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4"
+
+content-type@^1.0.0:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
+
+cookies@~0.7.0:
+  version "0.7.1"
+  resolved "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz#7c8a615f5481c61ab9f16c833731bcb8f663b99b"
+  dependencies:
+    depd "~1.1.1"
+    keygrip "~1.0.2"
+
+core-util-is@1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+cryptiles@3.x.x:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+  dependencies:
+    boom "5.x.x"
+
+dashdash@^1.12.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+  dependencies:
+    assert-plus "^1.0.0"
+
+debug@*, debug@^2.6.3, debug@^2.6.8:
+  version "2.6.9"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+  dependencies:
+    ms "2.0.0"
+
+debug@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+  dependencies:
+    ms "2.0.0"
+
+deep-equal@~1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
+
+delayed-stream@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+delegates@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+
+depd@^1.1.0, depd@~1.1.1, depd@~1.1.2:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
+
+destroy@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
+
+ecc-jsbn@~0.1.1:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+  dependencies:
+    jsbn "~0.1.0"
+
+ee-first@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
+
+error-inject@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz#e2b3d91b54aed672f309d950d154850fa11d4f37"
+
+escape-html@~1.0.1:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
+
+escape-string-regexp@^1.0.2:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+esprima@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+extend@^3.0.1, extend@~3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+extsprintf@1.3.0, extsprintf@^1.2.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+fast-deep-equal@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614"
+
+fast-json-stable-stringify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+forever-agent@~0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.3.1:
+  version "2.3.2"
+  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099"
+  dependencies:
+    asynckit "^0.4.0"
+    combined-stream "1.0.6"
+    mime-types "^2.1.12"
+
+fresh@^0.5.2:
+  version "0.5.2"
+  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
+
+getpass@^0.1.1:
+  version "0.1.7"
+  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+  dependencies:
+    assert-plus "^1.0.0"
+
+har-schema@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~5.0.3:
+  version "5.0.3"
+  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+  dependencies:
+    ajv "^5.1.0"
+    har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+  dependencies:
+    ansi-regex "^2.0.0"
+
+hawk@~6.0.2:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+  dependencies:
+    boom "4.x.x"
+    cryptiles "3.x.x"
+    hoek "4.x.x"
+    sntp "2.x.x"
+
+hoek@4.x.x:
+  version "4.2.1"
+  resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb"
+
+http-assert@^1.1.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz#a31a5cf88c873ecbb5796907d4d6f132e8c01e4a"
+  dependencies:
+    deep-equal "~1.0.1"
+    http-errors "~1.6.1"
+
+http-errors@^1.2.8, http-errors@^1.3.1, http-errors@^1.6.1, http-errors@~1.6.1, http-errors@~1.6.2:
+  version "1.6.3"
+  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
+  dependencies:
+    depd "~1.1.2"
+    inherits "2.0.3"
+    setprototypeof "1.1.0"
+    statuses ">= 1.4.0 < 2"
+
+http-signature@~1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+  dependencies:
+    assert-plus "^1.0.0"
+    jsprim "^1.2.2"
+    sshpk "^1.7.0"
+
+humanize-number@0.0.2:
+  version "0.0.2"
+  resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18"
+
+inherits@2.0.3:
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ip@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
+is-generator-function@^1.0.3:
+  version "1.0.7"
+  resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz#d2132e529bb0000a7f80794d4bdf5cd5e5813522"
+
+is-typedarray@~1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+isarray@0.0.1:
+  version "0.0.1"
+  resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf"
+
+isstream@~0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+js-yaml@^3.13.1:
+  version "3.13.1"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
+  dependencies:
+    argparse "^1.0.7"
+    esprima "^4.0.0"
+
+jsbn@~0.1.0:
+  version "0.1.1"
+  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+json-schema-traverse@^0.3.0:
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+  version "0.2.3"
+  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stringify-safe@~5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+jsprim@^1.2.2:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+  dependencies:
+    assert-plus "1.0.0"
+    extsprintf "1.3.0"
+    json-schema "0.2.3"
+    verror "1.10.0"
+
+keygrip@~1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz#ad3297c557069dea8bcfe7a4fa491b75c5ddeb91"
+
+koa-compose@^3.0.0:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7"
+  dependencies:
+    any-promise "^1.1.0"
+
+koa-compose@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz#2800a513d9c361ef0d63852b038e4f6f2d5a773c"
+
+koa-convert@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0"
+  dependencies:
+    co "^4.6.0"
+    koa-compose "^3.0.0"
+
+koa-is-json@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
+
+koa-logger@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.0.tgz#8aef64d8b848fb6253a9b31aa708d0e05141f0e6"
+  dependencies:
+    bytes "^2.5.0"
+    chalk "^1.1.3"
+    humanize-number "0.0.2"
+    passthrough-counter "^1.0.0"
+
+koa-request@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/koa-request/-/koa-request-1.0.0.tgz#19343352479d2cb965d7aff0a802b1a06d408e16"
+  dependencies:
+    request "*"
+
+koa-router@^7.4.0:
+  version "7.4.0"
+  resolved "https://registry.yarnpkg.com/koa-router/-/koa-router-7.4.0.tgz#aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0"
+  dependencies:
+    debug "^3.1.0"
+    http-errors "^1.3.1"
+    koa-compose "^3.0.0"
+    methods "^1.0.1"
+    path-to-regexp "^1.1.1"
+    urijs "^1.19.0"
+
+koa-send@^4.1.0:
+  version "4.1.3"
+  resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-4.1.3.tgz#0822207bbf5253a414c8f1765ebc29fa41353cb6"
+  dependencies:
+    debug "^2.6.3"
+    http-errors "^1.6.1"
+    mz "^2.6.0"
+    resolve-path "^1.4.0"
+
+koa-static@^4.0.2:
+  version "4.0.2"
+  resolved "https://registry.yarnpkg.com/koa-static/-/koa-static-4.0.2.tgz#6cda92d88d771dcaad9f0d825cd94a631c861a1a"
+  dependencies:
+    debug "^2.6.8"
+    koa-send "^4.1.0"
+
+koa@^2.5.0:
+  version "2.5.0"
+  resolved "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz#b0fbe1e195e43b27588a04fd0be0ddaeca2c154c"
+  dependencies:
+    accepts "^1.2.2"
+    content-disposition "~0.5.0"
+    content-type "^1.0.0"
+    cookies "~0.7.0"
+    debug "*"
+    delegates "^1.0.0"
+    depd "^1.1.0"
+    destroy "^1.0.3"
+    error-inject "~1.0.0"
+    escape-html "~1.0.1"
+    fresh "^0.5.2"
+    http-assert "^1.1.0"
+    http-errors "^1.2.8"
+    is-generator-function "^1.0.3"
+    koa-compose "^4.0.0"
+    koa-convert "^1.2.0"
+    koa-is-json "^1.0.0"
+    mime-types "^2.0.7"
+    on-finished "^2.1.0"
+    only "0.0.2"
+    parseurl "^1.3.0"
+    statuses "^1.2.0"
+    type-is "^1.5.5"
+    vary "^1.0.0"
+
+lodash@^4.13.1, lodash@^4.14.0:
+  version "4.17.19"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b"
+
+media-typer@0.3.0:
+  version "0.3.0"
+  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
+
+methods@^1.0.1:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
+
+mime-db@~1.33.0:
+  version "1.33.0"
+  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db"
+
+mime-types@^2.0.7, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18:
+  version "2.1.18"
+  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8"
+  dependencies:
+    mime-db "~1.33.0"
+
+ms@2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+mz@^2.6.0:
+  version "2.7.0"
+  resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
+  dependencies:
+    any-promise "^1.0.0"
+    object-assign "^4.0.1"
+    thenify-all "^1.0.0"
+
+negotiator@0.6.1:
+  version "0.6.1"
+  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9"
+
+node-ssdp@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/node-ssdp/-/node-ssdp-3.3.0.tgz#f19b1faec355f08d29b3ed3f9c626dc80354e6bd"
+  dependencies:
+    async "^2.6.0"
+    bluebird "^3.5.1"
+    debug "^3.1.0"
+    extend "^3.0.1"
+    ip "^1.1.5"
+
+oauth-sign@~0.8.2:
+  version "0.8.2"
+  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.0.1:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+on-finished@^2.1.0:
+  version "2.3.0"
+  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
+  dependencies:
+    ee-first "1.1.1"
+
+only@0.0.2:
+  version "0.0.2"
+  resolved "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz#2afde84d03e50b9a8edc444e30610a70295edfb4"
+
+parseurl@^1.3.0:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3"
+
+passthrough-counter@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa"
+
+path-is-absolute@1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-to-regexp@^1.1.1:
+  version "1.7.0"
+  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
+  dependencies:
+    isarray "0.0.1"
+
+performance-now@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+punycode@^1.4.1:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.5.1:
+  version "6.5.1"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+request-promise-core@1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6"
+  dependencies:
+    lodash "^4.13.1"
+
+request-promise-native@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz#5281770f68e0c9719e5163fd3fab482215f4fda5"
+  dependencies:
+    request-promise-core "1.1.1"
+    stealthy-require "^1.1.0"
+    tough-cookie ">=2.3.3"
+
+request@*, request@^2.85.0:
+  version "2.85.0"
+  resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa"
+  dependencies:
+    aws-sign2 "~0.7.0"
+    aws4 "^1.6.0"
+    caseless "~0.12.0"
+    combined-stream "~1.0.5"
+    extend "~3.0.1"
+    forever-agent "~0.6.1"
+    form-data "~2.3.1"
+    har-validator "~5.0.3"
+    hawk "~6.0.2"
+    http-signature "~1.2.0"
+    is-typedarray "~1.0.0"
+    isstream "~0.1.2"
+    json-stringify-safe "~5.0.1"
+    mime-types "~2.1.17"
+    oauth-sign "~0.8.2"
+    performance-now "^2.1.0"
+    qs "~6.5.1"
+    safe-buffer "^5.1.1"
+    stringstream "~0.0.5"
+    tough-cookie "~2.3.3"
+    tunnel-agent "^0.6.0"
+    uuid "^3.1.0"
+
+resolve-path@^1.4.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz#c4bda9f5efb2fce65247873ab36bb4d834fe16f7"
+  dependencies:
+    http-errors "~1.6.2"
+    path-is-absolute "1.0.1"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1:
+  version "5.1.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+setprototypeof@1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
+
+sntp@2.x.x:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+  dependencies:
+    hoek "4.x.x"
+
+sprintf-js@~1.0.2:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb"
+  dependencies:
+    asn1 "~0.2.3"
+    assert-plus "^1.0.0"
+    dashdash "^1.12.0"
+    getpass "^0.1.1"
+  optionalDependencies:
+    bcrypt-pbkdf "^1.0.0"
+    ecc-jsbn "~0.1.1"
+    jsbn "~0.1.0"
+    tweetnacl "~0.14.0"
+
+"statuses@>= 1.4.0 < 2", statuses@^1.2.0:
+  version "1.4.0"
+  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087"
+
+stealthy-require@^1.1.0:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b"
+
+stringstream@~0.0.5:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz#7880225b0d4ad10e30927d167a1d6f2fd3b33a72"
+
+strip-ansi@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  dependencies:
+    ansi-regex "^2.0.0"
+
+supports-color@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+thenify-all@^1.0.0:
+  version "1.6.0"
+  resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
+  dependencies:
+    thenify ">= 3.1.0 < 4"
+
+"thenify@>= 3.1.0 < 4":
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz#e69e38a1babe969b0108207978b9f62b88604839"
+  dependencies:
+    any-promise "^1.0.0"
+
+tough-cookie@>=2.3.3, tough-cookie@~2.3.3:
+  version "2.3.4"
+  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655"
+  dependencies:
+    punycode "^1.4.1"
+
+tunnel-agent@^0.6.0:
+  version "0.6.0"
+  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+  dependencies:
+    safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+  version "0.14.5"
+  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+type-is@^1.5.5:
+  version "1.6.16"
+  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194"
+  dependencies:
+    media-typer "0.3.0"
+    mime-types "~2.1.18"
+
+urijs@^1.19.0:
+  version "1.19.1"
+  resolved "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz#5b0ff530c0cbde8386f6342235ba5ca6e995d25a"
+
+uuid@^3.1.0:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14"
+
+vary@^1.0.0:
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
+
+verror@1.10.0:
+  version "1.10.0"
+  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+  dependencies:
+    assert-plus "^1.0.0"
+    core-util-is "1.0.2"
+    extsprintf "^1.2.0"
diff --git a/pkgs/servers/antennas/yarn.nix b/pkgs/servers/antennas/yarn.nix
new file mode 100644
index 00000000000..9b17cd53e99
--- /dev/null
+++ b/pkgs/servers/antennas/yarn.nix
@@ -0,0 +1,997 @@
+{ fetchurl, fetchgit, linkFarm, runCommand, gnutar }: rec {
+  offline_cache = linkFarm "offline" packages;
+  packages = [
+    {
+      name = "accepts___accepts_1.3.5.tgz";
+      path = fetchurl {
+        name = "accepts___accepts_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz";
+        sha1 = "eb777df6011723a3b14e8a72c0805c8e86746bd2";
+      };
+    }
+    {
+      name = "ajv___ajv_5.5.2.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_5.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz";
+        sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_2.2.1.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    }
+    {
+      name = "any_promise___any_promise_1.3.0.tgz";
+      path = fetchurl {
+        name = "any_promise___any_promise_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz";
+        sha1 = "abc6afeedcea52e809cdc0376aed3ce39635d17f";
+      };
+    }
+    {
+      name = "argparse___argparse_1.0.10.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_1.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
+        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+      };
+    }
+    {
+      name = "asn1___asn1_0.2.3.tgz";
+      path = fetchurl {
+        name = "asn1___asn1_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz";
+        sha1 = "dac8787713c9966849fc8180777ebe9c1ddf3b86";
+      };
+    }
+    {
+      name = "assert_plus___assert_plus_1.0.0.tgz";
+      path = fetchurl {
+        name = "assert_plus___assert_plus_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    }
+    {
+      name = "async___async_2.6.0.tgz";
+      path = fetchurl {
+        name = "async___async_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz";
+        sha1 = "61a29abb6fcc026fea77e56d1c6ec53a795951f4";
+      };
+    }
+    {
+      name = "asynckit___asynckit_0.4.0.tgz";
+      path = fetchurl {
+        name = "asynckit___asynckit_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    }
+    {
+      name = "aws_sign2___aws_sign2_0.7.0.tgz";
+      path = fetchurl {
+        name = "aws_sign2___aws_sign2_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    }
+    {
+      name = "aws4___aws4_1.7.0.tgz";
+      path = fetchurl {
+        name = "aws4___aws4_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz";
+        sha1 = "d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289";
+      };
+    }
+    {
+      name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.1.tgz";
+      path = fetchurl {
+        name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz";
+        sha1 = "63bc5dcb61331b92bc05fd528953c33462a06f8d";
+      };
+    }
+    {
+      name = "bluebird___bluebird_3.5.1.tgz";
+      path = fetchurl {
+        name = "bluebird___bluebird_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz";
+        sha1 = "d9551f9de98f1fcda1e683d17ee91a0602ee2eb9";
+      };
+    }
+    {
+      name = "boom___boom_4.3.1.tgz";
+      path = fetchurl {
+        name = "boom___boom_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz";
+        sha1 = "4f8a3005cb4a7e3889f749030fd25b96e01d2e31";
+      };
+    }
+    {
+      name = "boom___boom_5.2.0.tgz";
+      path = fetchurl {
+        name = "boom___boom_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz";
+        sha1 = "5dd9da6ee3a5f302077436290cb717d3f4a54e02";
+      };
+    }
+    {
+      name = "bytes___bytes_2.5.0.tgz";
+      path = fetchurl {
+        name = "bytes___bytes_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz";
+        sha1 = "4c9423ea2d252c270c41b2bdefeff9bb6b62c06a";
+      };
+    }
+    {
+      name = "caseless___caseless_0.12.0.tgz";
+      path = fetchurl {
+        name = "caseless___caseless_0.12.0.tgz";
+        url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    }
+    {
+      name = "chalk___chalk_1.1.3.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    }
+    {
+      name = "co___co_4.6.0.tgz";
+      path = fetchurl {
+        name = "co___co_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz";
+        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+      };
+    }
+    {
+      name = "combined_stream___combined_stream_1.0.6.tgz";
+      path = fetchurl {
+        name = "combined_stream___combined_stream_1.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz";
+        sha1 = "723e7df6e801ac5613113a7e445a9b69cb632818";
+      };
+    }
+    {
+      name = "content_disposition___content_disposition_0.5.2.tgz";
+      path = fetchurl {
+        name = "content_disposition___content_disposition_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz";
+        sha1 = "0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4";
+      };
+    }
+    {
+      name = "content_type___content_type_1.0.4.tgz";
+      path = fetchurl {
+        name = "content_type___content_type_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
+        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+      };
+    }
+    {
+      name = "cookies___cookies_0.7.1.tgz";
+      path = fetchurl {
+        name = "cookies___cookies_0.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/cookies/-/cookies-0.7.1.tgz";
+        sha1 = "7c8a615f5481c61ab9f16c833731bcb8f663b99b";
+      };
+    }
+    {
+      name = "core_util_is___core_util_is_1.0.2.tgz";
+      path = fetchurl {
+        name = "core_util_is___core_util_is_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    }
+    {
+      name = "cryptiles___cryptiles_3.1.2.tgz";
+      path = fetchurl {
+        name = "cryptiles___cryptiles_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz";
+        sha1 = "a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe";
+      };
+    }
+    {
+      name = "dashdash___dashdash_1.14.1.tgz";
+      path = fetchurl {
+        name = "dashdash___dashdash_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    }
+    {
+      name = "debug___debug_2.6.9.tgz";
+      path = fetchurl {
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+    {
+      name = "debug___debug_3.1.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz";
+        sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
+      };
+    }
+    {
+      name = "deep_equal___deep_equal_1.0.1.tgz";
+      path = fetchurl {
+        name = "deep_equal___deep_equal_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz";
+        sha1 = "f5d260292b660e084eff4cdbc9f08ad3247448b5";
+      };
+    }
+    {
+      name = "delayed_stream___delayed_stream_1.0.0.tgz";
+      path = fetchurl {
+        name = "delayed_stream___delayed_stream_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    }
+    {
+      name = "delegates___delegates_1.0.0.tgz";
+      path = fetchurl {
+        name = "delegates___delegates_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    }
+    {
+      name = "depd___depd_1.1.2.tgz";
+      path = fetchurl {
+        name = "depd___depd_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
+        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+      };
+    }
+    {
+      name = "destroy___destroy_1.0.4.tgz";
+      path = fetchurl {
+        name = "destroy___destroy_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
+        sha1 = "978857442c44749e4206613e37946205826abd80";
+      };
+    }
+    {
+      name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
+      path = fetchurl {
+        name = "ecc_jsbn___ecc_jsbn_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz";
+        sha1 = "0fc73a9ed5f0d53c38193398523ef7e543777505";
+      };
+    }
+    {
+      name = "ee_first___ee_first_1.1.1.tgz";
+      path = fetchurl {
+        name = "ee_first___ee_first_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
+        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+      };
+    }
+    {
+      name = "error_inject___error_inject_1.0.0.tgz";
+      path = fetchurl {
+        name = "error_inject___error_inject_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/error-inject/-/error-inject-1.0.0.tgz";
+        sha1 = "e2b3d91b54aed672f309d950d154850fa11d4f37";
+      };
+    }
+    {
+      name = "escape_html___escape_html_1.0.3.tgz";
+      path = fetchurl {
+        name = "escape_html___escape_html_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    }
+    {
+      name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+      path = fetchurl {
+        name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    }
+    {
+      name = "esprima___esprima_4.0.0.tgz";
+      path = fetchurl {
+        name = "esprima___esprima_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz";
+        sha1 = "4499eddcd1110e0b218bacf2fa7f7f59f55ca804";
+      };
+    }
+    {
+      name = "extend___extend_3.0.1.tgz";
+      path = fetchurl {
+        name = "extend___extend_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz";
+        sha1 = "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444";
+      };
+    }
+    {
+      name = "extsprintf___extsprintf_1.3.0.tgz";
+      path = fetchurl {
+        name = "extsprintf___extsprintf_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    }
+    {
+      name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz";
+        sha1 = "c053477817c86b51daa853c81e059b733d023614";
+      };
+    }
+    {
+      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+      path = fetchurl {
+        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+        sha1 = "d5142c0caee6b1189f87d3a76111064f86c8bbf2";
+      };
+    }
+    {
+      name = "forever_agent___forever_agent_0.6.1.tgz";
+      path = fetchurl {
+        name = "forever_agent___forever_agent_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    }
+    {
+      name = "form_data___form_data_2.3.2.tgz";
+      path = fetchurl {
+        name = "form_data___form_data_2.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz";
+        sha1 = "4970498be604c20c005d4f5c23aecd21d6b49099";
+      };
+    }
+    {
+      name = "fresh___fresh_0.5.2.tgz";
+      path = fetchurl {
+        name = "fresh___fresh_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
+        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+      };
+    }
+    {
+      name = "getpass___getpass_0.1.7.tgz";
+      path = fetchurl {
+        name = "getpass___getpass_0.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    }
+    {
+      name = "har_schema___har_schema_2.0.0.tgz";
+      path = fetchurl {
+        name = "har_schema___har_schema_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    }
+    {
+      name = "har_validator___har_validator_5.0.3.tgz";
+      path = fetchurl {
+        name = "har_validator___har_validator_5.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz";
+        sha1 = "ba402c266194f15956ef15e0fcf242993f6a7dfd";
+      };
+    }
+    {
+      name = "has_ansi___has_ansi_2.0.0.tgz";
+      path = fetchurl {
+        name = "has_ansi___has_ansi_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    }
+    {
+      name = "hawk___hawk_6.0.2.tgz";
+      path = fetchurl {
+        name = "hawk___hawk_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz";
+        sha1 = "af4d914eb065f9b5ce4d9d11c1cb2126eecc3038";
+      };
+    }
+    {
+      name = "hoek___hoek_4.2.1.tgz";
+      path = fetchurl {
+        name = "hoek___hoek_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz";
+        sha1 = "9634502aa12c445dd5a7c5734b572bb8738aacbb";
+      };
+    }
+    {
+      name = "http_assert___http_assert_1.3.0.tgz";
+      path = fetchurl {
+        name = "http_assert___http_assert_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-assert/-/http-assert-1.3.0.tgz";
+        sha1 = "a31a5cf88c873ecbb5796907d4d6f132e8c01e4a";
+      };
+    }
+    {
+      name = "http_errors___http_errors_1.6.3.tgz";
+      path = fetchurl {
+        name = "http_errors___http_errors_1.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz";
+        sha1 = "8b55680bb4be283a0b5bf4ea2e38580be1d9320d";
+      };
+    }
+    {
+      name = "http_signature___http_signature_1.2.0.tgz";
+      path = fetchurl {
+        name = "http_signature___http_signature_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    }
+    {
+      name = "humanize_number___humanize_number_0.0.2.tgz";
+      path = fetchurl {
+        name = "humanize_number___humanize_number_0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz";
+        sha1 = "11c0af6a471643633588588048f1799541489c18";
+      };
+    }
+    {
+      name = "inherits___inherits_2.0.3.tgz";
+      path = fetchurl {
+        name = "inherits___inherits_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
+        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+      };
+    }
+    {
+      name = "ip___ip_1.1.5.tgz";
+      path = fetchurl {
+        name = "ip___ip_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz";
+        sha1 = "bdded70114290828c0a039e72ef25f5aaec4354a";
+      };
+    }
+    {
+      name = "is_generator_function___is_generator_function_1.0.7.tgz";
+      path = fetchurl {
+        name = "is_generator_function___is_generator_function_1.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.7.tgz";
+        sha1 = "d2132e529bb0000a7f80794d4bdf5cd5e5813522";
+      };
+    }
+    {
+      name = "is_typedarray___is_typedarray_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_typedarray___is_typedarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    }
+    {
+      name = "isarray___isarray_0.0.1.tgz";
+      path = fetchurl {
+        name = "isarray___isarray_0.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    }
+    {
+      name = "isstream___isstream_0.1.2.tgz";
+      path = fetchurl {
+        name = "isstream___isstream_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_3.13.1.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_3.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+      };
+    }
+    {
+      name = "jsbn___jsbn_0.1.1.tgz";
+      path = fetchurl {
+        name = "jsbn___jsbn_0.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    }
+    {
+      name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+      path = fetchurl {
+        name = "json_schema_traverse___json_schema_traverse_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz";
+        sha1 = "349a6d44c53a51de89b40805c5d5e59b417d3340";
+      };
+    }
+    {
+      name = "json_schema___json_schema_0.2.3.tgz";
+      path = fetchurl {
+        name = "json_schema___json_schema_0.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    }
+    {
+      name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+      path = fetchurl {
+        name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    }
+    {
+      name = "jsprim___jsprim_1.4.1.tgz";
+      path = fetchurl {
+        name = "jsprim___jsprim_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    }
+    {
+      name = "keygrip___keygrip_1.0.2.tgz";
+      path = fetchurl {
+        name = "keygrip___keygrip_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/keygrip/-/keygrip-1.0.2.tgz";
+        sha1 = "ad3297c557069dea8bcfe7a4fa491b75c5ddeb91";
+      };
+    }
+    {
+      name = "koa_compose___koa_compose_3.2.1.tgz";
+      path = fetchurl {
+        name = "koa_compose___koa_compose_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz";
+        sha1 = "a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7";
+      };
+    }
+    {
+      name = "koa_compose___koa_compose_4.0.0.tgz";
+      path = fetchurl {
+        name = "koa_compose___koa_compose_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.0.0.tgz";
+        sha1 = "2800a513d9c361ef0d63852b038e4f6f2d5a773c";
+      };
+    }
+    {
+      name = "koa_convert___koa_convert_1.2.0.tgz";
+      path = fetchurl {
+        name = "koa_convert___koa_convert_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz";
+        sha1 = "da40875df49de0539098d1700b50820cebcd21d0";
+      };
+    }
+    {
+      name = "koa_is_json___koa_is_json_1.0.0.tgz";
+      path = fetchurl {
+        name = "koa_is_json___koa_is_json_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz";
+        sha1 = "273c07edcdcb8df6a2c1ab7d59ee76491451ec14";
+      };
+    }
+    {
+      name = "koa_logger___koa_logger_3.2.0.tgz";
+      path = fetchurl {
+        name = "koa_logger___koa_logger_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.0.tgz";
+        sha1 = "8aef64d8b848fb6253a9b31aa708d0e05141f0e6";
+      };
+    }
+    {
+      name = "koa_request___koa_request_1.0.0.tgz";
+      path = fetchurl {
+        name = "koa_request___koa_request_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-request/-/koa-request-1.0.0.tgz";
+        sha1 = "19343352479d2cb965d7aff0a802b1a06d408e16";
+      };
+    }
+    {
+      name = "koa_router___koa_router_7.4.0.tgz";
+      path = fetchurl {
+        name = "koa_router___koa_router_7.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa-router/-/koa-router-7.4.0.tgz";
+        sha1 = "aee1f7adc02d5cb31d7d67465c9eacc825e8c5e0";
+      };
+    }
+    {
+      name = "koa_send___koa_send_4.1.3.tgz";
+      path = fetchurl {
+        name = "koa_send___koa_send_4.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/koa-send/-/koa-send-4.1.3.tgz";
+        sha1 = "0822207bbf5253a414c8f1765ebc29fa41353cb6";
+      };
+    }
+    {
+      name = "koa_static___koa_static_4.0.2.tgz";
+      path = fetchurl {
+        name = "koa_static___koa_static_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/koa-static/-/koa-static-4.0.2.tgz";
+        sha1 = "6cda92d88d771dcaad9f0d825cd94a631c861a1a";
+      };
+    }
+    {
+      name = "koa___koa_2.5.0.tgz";
+      path = fetchurl {
+        name = "koa___koa_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/koa/-/koa-2.5.0.tgz";
+        sha1 = "b0fbe1e195e43b27588a04fd0be0ddaeca2c154c";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.19.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.19.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
+        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
+      };
+    }
+    {
+      name = "media_typer___media_typer_0.3.0.tgz";
+      path = fetchurl {
+        name = "media_typer___media_typer_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
+        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+      };
+    }
+    {
+      name = "methods___methods_1.1.2.tgz";
+      path = fetchurl {
+        name = "methods___methods_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
+        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+      };
+    }
+    {
+      name = "mime_db___mime_db_1.33.0.tgz";
+      path = fetchurl {
+        name = "mime_db___mime_db_1.33.0.tgz";
+        url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz";
+        sha1 = "a3492050a5cb9b63450541e39d9788d2272783db";
+      };
+    }
+    {
+      name = "mime_types___mime_types_2.1.18.tgz";
+      path = fetchurl {
+        name = "mime_types___mime_types_2.1.18.tgz";
+        url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz";
+        sha1 = "6f323f60a83d11146f831ff11fd66e2fe5503bb8";
+      };
+    }
+    {
+      name = "ms___ms_2.0.0.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    }
+    {
+      name = "mz___mz_2.7.0.tgz";
+      path = fetchurl {
+        name = "mz___mz_2.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz";
+        sha1 = "95008057a56cafadc2bc63dde7f9ff6955948e32";
+      };
+    }
+    {
+      name = "negotiator___negotiator_0.6.1.tgz";
+      path = fetchurl {
+        name = "negotiator___negotiator_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz";
+        sha1 = "2b327184e8992101177b28563fb5e7102acd0ca9";
+      };
+    }
+    {
+      name = "node_ssdp___node_ssdp_3.3.0.tgz";
+      path = fetchurl {
+        name = "node_ssdp___node_ssdp_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-ssdp/-/node-ssdp-3.3.0.tgz";
+        sha1 = "f19b1faec355f08d29b3ed3f9c626dc80354e6bd";
+      };
+    }
+    {
+      name = "oauth_sign___oauth_sign_0.8.2.tgz";
+      path = fetchurl {
+        name = "oauth_sign___oauth_sign_0.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz";
+        sha1 = "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43";
+      };
+    }
+    {
+      name = "object_assign___object_assign_4.1.1.tgz";
+      path = fetchurl {
+        name = "object_assign___object_assign_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    }
+    {
+      name = "on_finished___on_finished_2.3.0.tgz";
+      path = fetchurl {
+        name = "on_finished___on_finished_2.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
+        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+      };
+    }
+    {
+      name = "only___only_0.0.2.tgz";
+      path = fetchurl {
+        name = "only___only_0.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/only/-/only-0.0.2.tgz";
+        sha1 = "2afde84d03e50b9a8edc444e30610a70295edfb4";
+      };
+    }
+    {
+      name = "parseurl___parseurl_1.3.2.tgz";
+      path = fetchurl {
+        name = "parseurl___parseurl_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz";
+        sha1 = "fc289d4ed8993119460c156253262cdc8de65bf3";
+      };
+    }
+    {
+      name = "passthrough_counter___passthrough_counter_1.0.0.tgz";
+      path = fetchurl {
+        name = "passthrough_counter___passthrough_counter_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz";
+        sha1 = "1967d9e66da572b5c023c787db112a387ab166fa";
+      };
+    }
+    {
+      name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+      path = fetchurl {
+        name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    }
+    {
+      name = "path_to_regexp___path_to_regexp_1.7.0.tgz";
+      path = fetchurl {
+        name = "path_to_regexp___path_to_regexp_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz";
+        sha1 = "59fde0f435badacba103a84e9d3bc64e96b9937d";
+      };
+    }
+    {
+      name = "performance_now___performance_now_2.1.0.tgz";
+      path = fetchurl {
+        name = "performance_now___performance_now_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    }
+    {
+      name = "punycode___punycode_1.4.1.tgz";
+      path = fetchurl {
+        name = "punycode___punycode_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz";
+        sha1 = "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e";
+      };
+    }
+    {
+      name = "qs___qs_6.5.1.tgz";
+      path = fetchurl {
+        name = "qs___qs_6.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz";
+        sha1 = "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8";
+      };
+    }
+    {
+      name = "request_promise_core___request_promise_core_1.1.1.tgz";
+      path = fetchurl {
+        name = "request_promise_core___request_promise_core_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz";
+        sha1 = "3eee00b2c5aa83239cfb04c5700da36f81cd08b6";
+      };
+    }
+    {
+      name = "request_promise_native___request_promise_native_1.0.5.tgz";
+      path = fetchurl {
+        name = "request_promise_native___request_promise_native_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.5.tgz";
+        sha1 = "5281770f68e0c9719e5163fd3fab482215f4fda5";
+      };
+    }
+    {
+      name = "request___request_2.85.0.tgz";
+      path = fetchurl {
+        name = "request___request_2.85.0.tgz";
+        url  = "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz";
+        sha1 = "5a03615a47c61420b3eb99b7dba204f83603e1fa";
+      };
+    }
+    {
+      name = "resolve_path___resolve_path_1.4.0.tgz";
+      path = fetchurl {
+        name = "resolve_path___resolve_path_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-path/-/resolve-path-1.4.0.tgz";
+        sha1 = "c4bda9f5efb2fce65247873ab36bb4d834fe16f7";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.1.1.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz";
+        sha1 = "893312af69b2123def71f57889001671eeb2c853";
+      };
+    }
+    {
+      name = "setprototypeof___setprototypeof_1.1.0.tgz";
+      path = fetchurl {
+        name = "setprototypeof___setprototypeof_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz";
+        sha1 = "d0bd85536887b6fe7c0d818cb962d9d91c54e656";
+      };
+    }
+    {
+      name = "sntp___sntp_2.1.0.tgz";
+      path = fetchurl {
+        name = "sntp___sntp_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz";
+        sha1 = "2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8";
+      };
+    }
+    {
+      name = "sprintf_js___sprintf_js_1.0.3.tgz";
+      path = fetchurl {
+        name = "sprintf_js___sprintf_js_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    }
+    {
+      name = "sshpk___sshpk_1.14.1.tgz";
+      path = fetchurl {
+        name = "sshpk___sshpk_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz";
+        sha1 = "130f5975eddad963f1d56f92b9ac6c51fa9f83eb";
+      };
+    }
+    {
+      name = "statuses___statuses_1.4.0.tgz";
+      path = fetchurl {
+        name = "statuses___statuses_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz";
+        sha1 = "bb73d446da2796106efcc1b601a253d6c46bd087";
+      };
+    }
+    {
+      name = "stealthy_require___stealthy_require_1.1.1.tgz";
+      path = fetchurl {
+        name = "stealthy_require___stealthy_require_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz";
+        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+      };
+    }
+    {
+      name = "stringstream___stringstream_0.0.6.tgz";
+      path = fetchurl {
+        name = "stringstream___stringstream_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.6.tgz";
+        sha1 = "7880225b0d4ad10e30927d167a1d6f2fd3b33a72";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_3.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    }
+    {
+      name = "supports_color___supports_color_2.0.0.tgz";
+      path = fetchurl {
+        name = "supports_color___supports_color_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    }
+    {
+      name = "thenify_all___thenify_all_1.6.0.tgz";
+      path = fetchurl {
+        name = "thenify_all___thenify_all_1.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz";
+        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+      };
+    }
+    {
+      name = "thenify___thenify_3.3.0.tgz";
+      path = fetchurl {
+        name = "thenify___thenify_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/thenify/-/thenify-3.3.0.tgz";
+        sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
+      };
+    }
+    {
+      name = "tough_cookie___tough_cookie_2.3.4.tgz";
+      path = fetchurl {
+        name = "tough_cookie___tough_cookie_2.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz";
+        sha1 = "ec60cee38ac675063ffc97a5c18970578ee83655";
+      };
+    }
+    {
+      name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+      path = fetchurl {
+        name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    }
+    {
+      name = "tweetnacl___tweetnacl_0.14.5.tgz";
+      path = fetchurl {
+        name = "tweetnacl___tweetnacl_0.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    }
+    {
+      name = "type_is___type_is_1.6.16.tgz";
+      path = fetchurl {
+        name = "type_is___type_is_1.6.16.tgz";
+        url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz";
+        sha1 = "f89ce341541c672b25ee7ae3c73dee3b2be50194";
+      };
+    }
+    {
+      name = "urijs___urijs_1.19.1.tgz";
+      path = fetchurl {
+        name = "urijs___urijs_1.19.1.tgz";
+        url  = "https://registry.yarnpkg.com/urijs/-/urijs-1.19.1.tgz";
+        sha1 = "5b0ff530c0cbde8386f6342235ba5ca6e995d25a";
+      };
+    }
+    {
+      name = "uuid___uuid_3.2.1.tgz";
+      path = fetchurl {
+        name = "uuid___uuid_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz";
+        sha1 = "12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14";
+      };
+    }
+    {
+      name = "vary___vary_1.1.2.tgz";
+      path = fetchurl {
+        name = "vary___vary_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
+        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+      };
+    }
+    {
+      name = "verror___verror_1.10.0.tgz";
+      path = fetchurl {
+        name = "verror___verror_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    }
+  ];
+}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index c41791a9054..c248e29fc71 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -20,7 +20,7 @@
     "airly" = ps: with ps; [ airly ];
     "airnow" = ps: with ps; [ pyairnow ];
     "airthings" = ps: with ps; [ airthings-cloud ];
-    "airtouch4" = ps: with ps; [ ]; # missing inputs: airtouch4pyapi
+    "airtouch4" = ps: with ps; [ airtouch4pyapi ];
     "airvisual" = ps: with ps; [ pyairvisual ];
     "aladdin_connect" = ps: with ps; [ aladdin-connect ];
     "alarm_control_panel" = ps: with ps; [ ];
diff --git a/pkgs/servers/x11/xorg/xwayland.nix b/pkgs/servers/x11/xorg/xwayland.nix
index 84df46605fa..7db47f4bf76 100644
--- a/pkgs/servers/x11/xorg/xwayland.nix
+++ b/pkgs/servers/x11/xorg/xwayland.nix
@@ -43,10 +43,10 @@
 stdenv.mkDerivation rec {
 
   pname = "xwayland";
-  version = "21.1.2";
+  version = "21.1.3";
   src = fetchurl {
     url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz";
-    sha256 = "sha256-uBy91a1guLetjD7MfsKijJvwIUSGcHNc67UB8Ivr0Ys=";
+    sha256 = "sha256-68J1fzn9TH2xZU/YZZFYnCEaogFy1DpU93rlZ87b+KI=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 5202527b8c0..47a81989cde 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -11,13 +11,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.58.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-s84fIpCyTF7FrJZGATjIJHt/+aknlhlz1V9s+c4f+Ig=";
+    sha256 = "sha256-KU9IbvQ6qPbSoHVRN/g7iETV47Y4wMMESzpRHMQ0Uxw=";
   };
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ];
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-5YOF0nXn4rdp3uxatzdvaqdAbLlHK6nq5H4+ZX/7joM=";
+  cargoSha256 = "sha256-IzTRvvQ1uHS2WY2Cf8VQOq423PjwXYNW4bub0ZyvTIE=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/pkgs/tools/networking/ndn-tools/default.nix b/pkgs/tools/networking/ndn-tools/default.nix
new file mode 100644
index 00000000000..83a8182b427
--- /dev/null
+++ b/pkgs/tools/networking/ndn-tools/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, stdenv
+, boost
+, fetchFromGitHub
+, libpcap
+, ndn-cxx
+, openssl
+, pkg-config
+, sphinx
+, wafHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ndn-tools";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "named-data";
+    repo = pname;
+    rev = "ndn-tools-${version}";
+    sha256 = "1q2d0v8srqjbvigr570qw6ia0d9f88aj26ccyxkzjjwwqdx3y4fy";
+  };
+
+  nativeBuildInputs = [ pkg-config sphinx wafHook ];
+  buildInputs = [ libpcap ndn-cxx openssl ];
+
+  wafConfigureFlags = [
+    "--boost-includes=${boost.dev}/include"
+    "--boost-libs=${boost.out}/lib"
+    "--with-tests"
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    build/unit-tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://named-data.net/";
+    description = "Named Data Neworking (NDN) Essential Tools";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ bertof ];
+  };
+}
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 7df444177c5..fc55902ce5f 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -151,7 +151,7 @@ common =
 
       enableParallelBuilding = true;
 
-      meta = {
+      meta = with lib; {
         description = "Powerful package manager that makes package management reliable and reproducible";
         longDescription = ''
           Nix is a powerful package manager for Linux and other Unix systems that
@@ -161,10 +161,10 @@ common =
           environments.
         '';
         homepage = "https://nixos.org/";
-        license = lib.licenses.lgpl2Plus;
-        maintainers = [ lib.maintainers.eelco ];
-        platforms = lib.platforms.unix;
-        outputsToInstall = [ "out" ] ++ lib.optional enableDocumentation "man";
+        license = licenses.lgpl2Plus;
+        maintainers = with maintainers; [ eelco lovesegfault ];
+        platforms = platforms.unix;
+        outputsToInstall = [ "out" ] ++ optional enableDocumentation "man";
       };
 
       passthru = {
@@ -213,7 +213,7 @@ in rec {
 
   nix = nixStable;
 
-  nixStable = nix_2_3;
+  nixStable = nix_2_4;
 
   nix_2_3 = callPackage common (rec {
     pname = "nix";
diff --git a/pkgs/tools/package-management/nixpkgs-review/default.nix b/pkgs/tools/package-management/nixpkgs-review/default.nix
index 7c6e9283d62..ea2b565be27 100644
--- a/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -1,7 +1,7 @@
 { lib
 , python3
 , fetchFromGitHub
-, nixUnstable
+, nix
 , git
 }:
 
@@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec {
   };
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" "${lib.makeBinPath [ nixUnstable git ]}"
+    "--prefix" "PATH" ":" "${lib.makeBinPath [ nix git ]}"
   ];
 
   doCheck = false;
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 18128639ff4..06b4ddc0621 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -47,7 +47,7 @@ python3.pkgs.buildPythonApplication rec {
     in
     ''
       # see https://github.com/NixOS/nixpkgs/issues/4968
-      rm -r ${sitePackages}/etc ${sitePackages}/usr
+      rm -rf ${sitePackages}/etc ${sitePackages}/usr
     '';
 
   meta = with lib; {
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 6dfe63215f1..09e965583ad 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.0.20";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-QMuixP4+wYVcF3s848cw6103PGDON4Inj2Nypt4FGIU=";
+    sha256 = "sha256-Vl62v92TmXNR6x7LDmNpiOlOgNNm0WuZva1SCKqqvbQ=";
   };
 
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index a320f6a29a2..dafbd0c6d30 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -432,6 +432,7 @@ mapAliases ({
   libintlOrEmpty = lib.optional (!stdenv.isLinux || stdenv.hostPlatform.libc != "glibc") gettext; # added 2018-03-14
   libjpeg_drop = libjpeg_original; # added 2020-06-05
   libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
+  libkml = throw "libkml has been removed from nixpkgs, as it's abandoned and no package needed it."; # added 2021-11-09
   liblapackWithoutAtlas = lapack-reference; # added 2018-11-05
   liblastfm = libsForQt5.liblastfm; # added 2020-06-14
   liblrdf = lrdf; # added 2018-04-25
@@ -590,7 +591,7 @@ mapAliases ({
   nginxUnstable = nginxMainline; # added 2018-04-25
   nilfs_utils = nilfs-utils; # added 2018-04-25
   nix-review = nixpkgs-review; # added 2019-12-22
-  nixFlakes = nix_2_4; # added 2021-05-21
+  nixFlakes = nixStable; # added 2021-05-21
   nmap_graphical = nmap-graphical;  # added 2017-01-19
   nmap-unfree = nmap; # added 2021-04-06
   nologin = shadow; # added 2018-04-25
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 11c1bbedace..7ed86007e75 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1429,6 +1429,8 @@ with pkgs;
     client = true;
   });
 
+  antennas = callPackage ../servers/antennas { };
+
   apg = callPackage ../tools/security/apg { };
 
   apt-dater = callPackage ../tools/package-management/apt-dater {
@@ -15707,6 +15709,8 @@ with pkgs;
 
   ndn-cxx = callPackage ../development/libraries/ndn-cxx { };
 
+  ndn-tools = callPackage ../tools/networking/ndn-tools { };
+
   cddlib = callPackage ../development/libraries/cddlib {};
 
   cdk = callPackage ../development/libraries/cdk {};
@@ -17847,8 +17851,6 @@ with pkgs;
 
   libkeyfinder = callPackage ../development/libraries/audio/libkeyfinder { };
 
-  libkml = callPackage ../development/libraries/libkml { };
-
   libks = callPackage ../development/libraries/libks { };
 
   libksba = callPackage ../development/libraries/libksba { };
@@ -18654,7 +18656,7 @@ with pkgs;
   nghttp2 = callPackage ../development/libraries/nghttp2 { };
   libnghttp2 = nghttp2.lib;
 
-  nix-plugins = callPackage ../development/libraries/nix-plugins {};
+  nix-plugins = callPackage ../development/libraries/nix-plugins { nix = nix_2_3; };
 
   nika-fonts = callPackage ../data/fonts/nika-fonts { };
 
@@ -19563,6 +19565,8 @@ with pkgs;
 
   srtp = callPackage ../development/libraries/srtp { };
 
+  stargate-libcds = callPackage ../development/libraries/stargate-libcds { };
+
   stb = callPackage ../development/libraries/stb { };
 
   StormLib = callPackage ../development/libraries/StormLib { };
@@ -21865,6 +21869,8 @@ with pkgs;
 
   intel2200BGFirmware = callPackage ../os-specific/linux/firmware/intel2200BGFirmware { };
 
+  intel-cmt-cat = callPackage ../os-specific/linux/intel-cmt-cat { };
+
   intel-compute-runtime = callPackage ../os-specific/linux/intel-compute-runtime { };
 
   intel-ocl = callPackage ../os-specific/linux/intel-ocl { };
@@ -22470,6 +22476,8 @@ with pkgs;
 
   seturgent = callPackage ../os-specific/linux/seturgent { };
 
+  sgx-sdk = callPackage ../os-specific/linux/sgx-sdk { };
+
   shadow = callPackage ../os-specific/linux/shadow { };
 
   sinit = callPackage ../os-specific/linux/sinit {
@@ -24143,6 +24151,8 @@ with pkgs;
 
   boops = callPackage ../applications/audio/boops { };
 
+  ChowKick  = callPackage ../applications/audio/ChowKick { };
+
   CHOWTapeModel = callPackage ../applications/audio/CHOWTapeModel { };
 
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
@@ -26933,16 +26943,7 @@ with pkgs;
   shotcut = libsForQt5.callPackage ../applications/video/shotcut { };
 
   shogun = callPackage ../applications/science/machine-learning/shogun {
-    stdenv = gcc8Stdenv;
-
-    # Workaround for the glibc abi version mismatch.
-    # Please note that opencv builds are by default disabled.
-    opencv = opencv3.override {
-      stdenv = gcc8Stdenv;
-      openexr = openexr.override {
-        stdenv = gcc8Stdenv;
-      };
-    };
+    opencv = opencv3;
   };
 
   smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
@@ -32429,7 +32430,7 @@ with pkgs;
 
   nix-eval-jobs = callPackage ../tools/package-management/nix-eval-jobs { };
 
-  nix-doc = callPackage ../tools/package-management/nix-doc { };
+  nix-doc = callPackage ../tools/package-management/nix-doc { nix = nix_2_3; };
 
   nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
@@ -32451,7 +32452,7 @@ with pkgs;
 
   nix-linter = haskell.lib.justStaticExecutables (haskellPackages.nix-linter);
 
-  nixos-option = callPackage ../tools/nix/nixos-option { };
+  nixos-option = callPackage ../tools/nix/nixos-option { nix = nix_2_3; };
 
   nix-pin = callPackage ../tools/package-management/nix-pin { };
 
@@ -33601,5 +33602,9 @@ with pkgs;
 
   zktree = callPackage ../applications/misc/zktree {};
 
+  zrythm = callPackage ../applications/audio/zrythm {
+    inherit (plasma5Packages) breeze-icons;
+  };
+
   zthrottle = callPackage ../tools/misc/zthrottle { };
 }
diff --git a/pkgs/top-level/nixpkgs-basic-release-checks.nix b/pkgs/top-level/nixpkgs-basic-release-checks.nix
index 777cce7e5e0..350dd273fe2 100644
--- a/pkgs/top-level/nixpkgs-basic-release-checks.nix
+++ b/pkgs/top-level/nixpkgs-basic-release-checks.nix
@@ -3,7 +3,8 @@
 pkgs.runCommand "nixpkgs-release-checks" { src = nixpkgs; buildInputs = [nix]; } ''
     set -o pipefail
 
-    export NIX_STATE_DIR=$TMPDIR
+    export NIX_STORE_DIR=$TMPDIR/store
+    export NIX_STATE_DIR=$TMPDIR/state
     export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
     opts=(--option build-users-group "")
     nix-store --init
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index c28a9f73c38..d4687cea92c 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -409,6 +409,8 @@ in {
 
   airthings-cloud = callPackage ../development/python-modules/airthings-cloud { };
 
+  airtouch4pyapi = callPackage ../development/python-modules/airtouch4pyapi { };
+
   ajpy = callPackage ../development/python-modules/ajpy { };
 
   ajsonrpc = callPackage ../development/python-modules/ajsonrpc { };
@@ -7492,6 +7494,7 @@ in {
   };
 
   pythonix = callPackage ../development/python-modules/pythonix {
+    nix = pkgs.nix_2_3;
     meson = pkgs.meson.override { python3 = self.python; };
   };
 
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 7db79276d89..9d34ddb3685 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -76,8 +76,10 @@ let
 
   trivialBuilders = self: super:
     import ../build-support/trivial-builders.nix {
-      inherit lib; inherit (self) stdenv stdenvNoCC; inherit (self.pkgsBuildHost.xorg) lndir;
-      inherit (self) runtimeShell;
+      inherit lib;
+      inherit (self) runtimeShell stdenv stdenvNoCC;
+      inherit (self.pkgsBuildHost) shellcheck;
+      inherit (self.pkgsBuildHost.xorg) lndir;
     };
 
   stdenvBootstappingAndPlatforms = self: super: let