about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2020-05-01 08:57:10 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2020-05-01 08:57:10 +0200
commit484ee79050976cf1d234b4056d16e5bdc152bed6 (patch)
treec38b8141426c5714ed7bc5f9e1ffe008c813507f
parentb6474577b04a86a27a555dafa676670fb3902ec8 (diff)
parent2111240b9f7e5704045763fbdc66534609a62a65 (diff)
downloadnixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar.gz
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar.bz2
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar.lz
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar.xz
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.tar.zst
nixlib-484ee79050976cf1d234b4056d16e5bdc152bed6.zip
Merge staging-next into staging
-rw-r--r--.github/CODEOWNERS3
-rw-r--r--doc/languages-frameworks/php.section.md75
-rw-r--r--maintainers/maintainer-list.nix10
-rw-r--r--maintainers/team-list.nix11
-rw-r--r--nixos/doc/manual/installation/installing.xml5
-rw-r--r--nixos/doc/manual/release-notes/rl-2009.xml100
-rw-r--r--nixos/lib/test-driver/test-driver.py26
-rw-r--r--nixos/modules/config/nsswitch.nix5
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-base.nix5
-rw-r--r--nixos/modules/security/google_oslogin.nix1
-rw-r--r--nixos/modules/services/mail/roundcube.nix2
-rw-r--r--nixos/modules/services/web-apps/mediawiki.nix23
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix4
-rw-r--r--nixos/modules/services/web-servers/apache-httpd/default.nix2
-rw-r--r--nixos/modules/system/boot/systemd.nix1
-rw-r--r--nixos/modules/virtualisation/podman.nix50
-rw-r--r--nixos/tests/elk.nix1
-rw-r--r--nixos/tests/google-oslogin/default.nix18
-rw-r--r--nixos/tests/google-oslogin/server.py83
-rw-r--r--nixos/tests/mediawiki.nix7
-rw-r--r--nixos/tests/php/fpm.nix4
-rw-r--r--nixos/tests/php/httpd.nix4
-rw-r--r--nixos/tests/php/pcre.nix4
-rw-r--r--pkgs/applications/blockchains/zcash/librustzcash/default.nix2
-rw-r--r--pkgs/applications/editors/emacs-modes/emacspeak/default.nix43
-rw-r--r--pkgs/applications/editors/emacs-modes/manual-packages.nix2
-rw-r--r--pkgs/applications/graphics/darktable/default.nix4
-rw-r--r--pkgs/applications/misc/alacritty/default.nix2
-rw-r--r--pkgs/applications/misc/birdtray/default.nix4
-rw-r--r--pkgs/applications/misc/googler/default.nix4
-rw-r--r--pkgs/applications/misc/havoc/default.nix35
-rw-r--r--pkgs/applications/misc/hugo/default.nix6
-rw-r--r--pkgs/applications/misc/st/default.nix9
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/hyperkit.nix13
-rw-r--r--pkgs/applications/networking/cluster/docker-machine/kvm2.nix19
-rw-r--r--pkgs/applications/networking/cluster/kubernix/default.nix24
-rw-r--r--pkgs/applications/networking/cluster/minikube/default.nix65
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/data.nix332
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix10
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix38
-rwxr-xr-xpkgs/applications/networking/cluster/terraform-providers/update-all2
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix27
-rw-r--r--pkgs/applications/networking/dyndns/cfdyndns/default.nix2
-rw-r--r--pkgs/applications/networking/hydroxide/default.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--pkgs/applications/networking/nym/default.nix54
-rwxr-xr-xpkgs/applications/networking/nym/update.sh37
-rw-r--r--pkgs/applications/office/jameica/default.nix8
-rw-r--r--pkgs/applications/science/physics/sherpa/default.nix16
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-ignore/default.nix7
-rw-r--r--pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch12
-rw-r--r--pkgs/applications/virtualization/nvidia-docker/libnvc.nix8
-rw-r--r--pkgs/applications/virtualization/podman/wrapper.nix48
-rw-r--r--pkgs/applications/window-managers/spectrwm/default.nix38
-rw-r--r--pkgs/build-support/ocaml/dune.nix8
-rw-r--r--pkgs/data/fonts/jetbrains-mono/default.nix4
-rw-r--r--pkgs/data/themes/pop-gtk/default.nix12
-rw-r--r--pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix26
-rw-r--r--pkgs/development/compilers/dmd/binary.nix52
-rw-r--r--pkgs/development/compilers/dmd/bootstrap.nix9
-rw-r--r--pkgs/development/compilers/dmd/default.nix39
-rw-r--r--pkgs/development/compilers/fstar/default.nix7
-rw-r--r--pkgs/development/compilers/ldc/binary.nix41
-rw-r--r--pkgs/development/compilers/ldc/bootstrap.nix10
-rw-r--r--pkgs/development/compilers/ldc/default.nix174
-rw-r--r--pkgs/development/compilers/ldc/generic.nix143
-rw-r--r--pkgs/development/interpreters/hy/default.nix21
-rw-r--r--pkgs/development/interpreters/luajit/2.0.nix5
-rw-r--r--pkgs/development/interpreters/luajit/2.1.nix5
-rw-r--r--pkgs/development/interpreters/luajit/default.nix12
-rw-r--r--pkgs/development/interpreters/php/default.nix474
-rw-r--r--pkgs/development/libraries/libeatmydata/default.nix38
-rw-r--r--pkgs/development/libraries/libextractor/default.nix28
-rw-r--r--pkgs/development/libraries/libextractor/gst-hardcode-plugins.patch11
-rw-r--r--pkgs/development/libraries/openmpi/default.nix9
-rw-r--r--pkgs/development/libraries/protobuf/3.11.nix4
-rw-r--r--pkgs/development/libraries/vtk/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix4
-rw-r--r--pkgs/development/python-modules/black/default.nix2
-rw-r--r--pkgs/development/tools/asmfmt/default.nix16
-rw-r--r--pkgs/development/tools/build-managers/meson/default.nix2
-rw-r--r--pkgs/development/tools/flatpak-builder/default.nix2
-rw-r--r--pkgs/development/tools/flatpak-builder/fix-paths.patch9
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix6
-rw-r--r--pkgs/development/tools/gox/default.nix11
-rw-r--r--pkgs/development/tools/gox/deps.nix11
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/scc/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-deny/default.nix34
-rw-r--r--pkgs/development/tools/rust/racerd/default.nix2
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch226
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/default.nix6
-rw-r--r--pkgs/development/web/nodejs/v13.nix6
-rw-r--r--pkgs/development/web/nodejs/v14.nix14
-rw-r--r--pkgs/games/gnuchess/default.nix13
-rw-r--r--pkgs/games/steam/runtime-generated.nix276
-rw-r--r--pkgs/misc/emulators/wine/sources.nix4
-rw-r--r--pkgs/misc/scrcpy/default.nix6
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/default.nix2
-rw-r--r--pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch87
-rw-r--r--pkgs/os-specific/linux/kernel/hardened-patches.json18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.6.nix4
-rw-r--r--pkgs/servers/coturn/default.nix11
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix12
-rw-r--r--pkgs/servers/gotify/default.nix10
-rw-r--r--pkgs/servers/gotify/mod-sha.nix1
-rw-r--r--pkgs/servers/gotify/package.json5
-rw-r--r--pkgs/servers/gotify/source-sha.nix1
-rw-r--r--pkgs/servers/gotify/ui.nix4
-rwxr-xr-xpkgs/servers/gotify/update-yarn-deps.sh20
-rwxr-xr-xpkgs/servers/gotify/update.sh40
-rw-r--r--pkgs/servers/gotify/version.nix1
-rw-r--r--pkgs/servers/gotify/yarndeps.nix200
-rw-r--r--pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch20
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix20
-rw-r--r--pkgs/servers/home-assistant/default.nix4
-rw-r--r--pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py2
-rw-r--r--pkgs/servers/http/unit/default.nix24
-rw-r--r--pkgs/servers/roundcube/default.nix4
-rw-r--r--pkgs/servers/uftp/default.nix4
-rw-r--r--pkgs/servers/uwsgi/default.nix4
-rw-r--r--pkgs/shells/bash/bash-completion/default.nix2
-rw-r--r--pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--pkgs/tools/backup/monolith/default.nix6
-rw-r--r--pkgs/tools/misc/broot/default.nix2
-rw-r--r--pkgs/tools/misc/fd/default.nix5
-rw-r--r--pkgs/tools/misc/lsd/default.nix2
-rw-r--r--pkgs/tools/misc/shadowenv/default.nix9
-rw-r--r--pkgs/tools/misc/tmux/default.nix4
-rw-r--r--pkgs/tools/networking/frp/default.nix4
-rw-r--r--pkgs/tools/networking/mu/default.nix4
-rw-r--r--pkgs/tools/networking/tox-node/default.nix2
-rw-r--r--pkgs/tools/package-management/cargo-deb/default.nix8
-rw-r--r--pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--pkgs/tools/system/colorls/Gemfile.lock2
-rw-r--r--pkgs/tools/system/colorls/default.nix2
-rw-r--r--pkgs/tools/system/colorls/gemset.nix4
-rw-r--r--pkgs/tools/text/ripgrep/default.nix6
-rw-r--r--pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix33
-rw-r--r--pkgs/top-level/aliases.nix49
-rw-r--r--pkgs/top-level/all-packages.nix28
-rw-r--r--pkgs/top-level/php-packages.nix130
147 files changed, 2400 insertions, 1574 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index e37a4de9d077..7c39ce48a3fe 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -176,6 +176,7 @@
 
 # PHP
 /doc/languages-frameworks/php.section.md @etu
+/nixos/tests/php                         @etu
+/pkgs/build-support/build-pecl.nix       @etu
 /pkgs/development/interpreters/php       @etu
 /pkgs/top-level/php-packages.nix         @etu
-/pkgs/build-support/build-pecl.nix       @etu
diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md
index a302a9a7f87d..101f7b043fff 100644
--- a/doc/languages-frameworks/php.section.md
+++ b/doc/languages-frameworks/php.section.md
@@ -9,18 +9,24 @@
 Several versions of PHP are available on Nix, each of which having a
 wide variety of extensions and libraries available.
 
-The attribute `php` refers to the version of PHP considered most
-stable and thoroughly tested in nixpkgs for any given release of
-NixOS. Note that while this version of PHP may not be the latest major
-release from upstream, any version of PHP supported in nixpkgs may be
-utilized by specifying the desired attribute by version, such as
-`php74`.
+The different versions of PHP that nixpkgs provides are located under
+attributes named based on major and minor version number; e.g.,
+`php74` is PHP 7.4.
 
 Only versions of PHP that are supported by upstream for the entirety
 of a given NixOS release will be included in that release of
 NixOS. See [PHP Supported
 Versions](https://www.php.net/supported-versions.php).
 
+The attribute `php` refers to the version of PHP considered most
+stable and thoroughly tested in nixpkgs for any given release of
+NixOS - not necessarily the latest major release from upstream.
+
+All available PHP attributes are wrappers around their respective
+binary PHP package and provide commonly used extensions this way. The
+real PHP 7.4 package, i.e. the unwrapped one, is available as
+`php74.unwrapped`; see the next section for more details.
+
 Interactive tools built on PHP are put in `php.packages`; composer is
 for example available at `php.packages.composer`.
 
@@ -30,39 +36,44 @@ opcache extension shipped with PHP is available at
 `php.extensions.opcache` and the third-party ImageMagick extension at
 `php.extensions.imagick`.
 
-The different versions of PHP that nixpkgs provides is located under
-attributes named based on major and minor version number; e.g.,
-`php74` is PHP 7.4 with commonly used extensions installed,
-`php74base` is the same PHP runtime without extensions.
-
-#### Installing PHP with packages
+#### Installing PHP with extensions
 
 A PHP package with specific extensions enabled can be built using
 `php.withExtensions`. This is a function which accepts an anonymous
-function as its only argument; the function should take one argument,
-the set of all extensions, and return a list of wanted extensions. For
-example, a PHP package with the opcache and ImageMagick extensions
-enabled:
+function as its only argument; the function should accept two named
+parameters: `enabled` - a list of currently enabled extensions and
+`all` - the set of all extensions, and return a list of wanted
+extensions. For example, a PHP package with all default extensions and
+ImageMagick enabled:
 
 ```nix
-php.withExtensions (e: with e; [ imagick opcache ])
+php.withExtensions ({ enabled, all }:
+  enabled ++ [ all.imagick ])
 ```
 
-Note that this will give you a package with _only_ opcache and
-ImageMagick, none of the other extensions which are enabled by default
-in the `php` package will be available.
+To exclude some, but not all, of the default extensions, you can
+filter the `enabled` list like this:
+
+```nix
+php.withExtensions ({ enabled, all }:
+  (lib.filter (e: e != php.extensions.opcache) enabled)
+  ++ [ all.imagick ])
+```
 
-To enable building on a previous PHP package, the currently enabled
-extensions are made available in its `enabledExtensions`
-attribute. For example, to generate a package with all default
-extensions enabled, except opcache, but with ImageMagick:
+To build your list of extensions from the ground up, you can simply
+ignore `enabled`:
 
 ```nix
-php.withExtensions (e:
-  (lib.filter (e: e != php.extensions.opcache) php.enabledExtensions)
-  ++ [ e.imagick ])
+php.withExtensions ({ all, ... }: with all; [ opcache imagick ])
 ```
 
+`php.withExtensions` provides extensions by wrapping a minimal php
+base package, providing a `php.ini` file listing all extensions to be
+loaded. You can access this package through the `php.unwrapped`
+attribute; useful if you, for example, need access to the `dev`
+output. The generated `php.ini` file can be accessed through the
+`php.phpIni` attribute.
+
 If you want a PHP build with extra configuration in the `php.ini`
 file, you can use `php.buildEnv`. This function takes two named and
 optional parameters: `extensions` and `extraConfig`. `extensions`
@@ -73,7 +84,7 @@ and ImageMagick extensions enabled, and `memory_limit` set to `256M`:
 
 ```nix
 php.buildEnv {
-  extensions = e: with e; [ imagick opcache ];
+  extensions = { all, ... }: with all; [ imagick opcache ];
   extraConfig = "memory_limit=256M";
 }
 ```
@@ -85,7 +96,7 @@ follows:
 
 ```nix
 let
-  myPhp = php.withExtensions (e: with e; [ imagick opcache ]);
+  myPhp = php.withExtensions ({ all, ... }: with all; [ opcache imagick ]);
 in {
   services.phpfpm.pools."foo".phpPackage = myPhp;
 };
@@ -94,7 +105,7 @@ in {
 ```nix
 let
   myPhp = php.buildEnv {
-    extensions = e: with e; [ imagick opcache ];
+    extensions = { all, ... }: with all; [ imagick opcache ];
     extraConfig = "memory_limit=256M";
   };
 in {
@@ -105,8 +116,8 @@ in {
 ##### Example usage with `nix-shell`
 
 This brings up a temporary environment that contains a PHP interpreter
-with the extensions `imagick` and `opcache` enabled.
+with the extensions `imagick` and `opcache` enabled:
 
 ```sh
-nix-shell -p 'php.buildEnv { extensions = e: with e; [ imagick opcache ]; }'
+nix-shell -p 'php.withExtensions ({ all, ... }: with all; [ imagick opcache ])'
 ```
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 1bd0ebffdba0..35dd144796e2 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -1406,6 +1406,16 @@
     githubId = 1103294;
     name = "Christopher Rosset";
   };
+  christianharke = {
+    email = "christian@harke.ch";
+    github = "christianharke";
+    githubId = 13007345;
+    name = "Christian Harke";
+    keys = [{
+      longkeyid = "rsa4096/0x830A9728630966F4";
+      fingerprint = "4EBB 30F1 E89A 541A A7F2  52BE 830A 9728 6309 66F4";
+    }];
+  };
   christopherpoole = {
     email = "mail@christopherpoole.net";
     github = "christopherpoole";
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 9fe952e54158..1fed6a4d9bf7 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -43,6 +43,17 @@ with lib.maintainers; {
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  php = {
+    members = [
+      aanderse
+      etu
+      globin
+      ma27
+      talyz
+    ];
+    scope = "Maintain PHP related packages and extensions.";
+  };
+
   podman = {
     members = [
       adisbladis
diff --git a/nixos/doc/manual/installation/installing.xml b/nixos/doc/manual/installation/installing.xml
index 0dbfb39c32b2..673df8f2e4c4 100644
--- a/nixos/doc/manual/installation/installing.xml
+++ b/nixos/doc/manual/installation/installing.xml
@@ -41,6 +41,11 @@
    neo</command>!)
   </para>
 
+  <para>
+   If the text is too small to be legible, try <command>setfont ter-132n</command>
+   to increase the font size.
+  </para>
+
   <section xml:id="sec-installation-booting-networking">
    <title>Networking in the installer</title>
 
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index b57e11a1855d..07db926c97d2 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -145,69 +145,69 @@
    </listitem>
    <listitem>
      <para>
-       Since this release there's an easy way to customize your PHP install to get a much smaller
-       base PHP with only wanted extensions enabled. See the following snippet installing a smaller PHP
-       with the extensions <literal>imagick</literal>, <literal>opcache</literal> and
+       Since this release there's an easy way to customize your PHP
+       install to get a much smaller base PHP with only wanted
+       extensions enabled. See the following snippet installing a
+       smaller PHP with the extensions <literal>imagick</literal>,
+       <literal>opcache</literal>, <literal>pdo</literal> and
        <literal>pdo_mysql</literal> loaded:
 
        <programlisting>
 environment.systemPackages = [
-(pkgs.php.buildEnv { extensions = pp: with pp; [
-    imagick
-    opcache
-    pdo_mysql
-  ]; })
+  (pkgs.php.withExtensions
+    ({ all, ... }: with all; [
+      imagick
+      opcache
+      pdo
+      pdo_mysql
+    ])
+  )
 ];</programlisting>
 
-       The default <literal>php</literal> attribute hasn't lost any extensions -
-       the <literal>opcache</literal> extension was added there.
+       The default <literal>php</literal> attribute hasn't lost any
+       extensions. The <literal>opcache</literal> extension has been
+       added.
 
        All upstream PHP extensions are available under <package><![CDATA[php.extensions.<name?>]]></package>.
      </para>
      <para>
-       The updated <literal>php</literal> attribute is now easily customizable to your liking
-       by using extensions instead of writing config files or changing configure flags.
-
-       Therefore we have removed the following configure flags:
+       All PHP <literal>config</literal> flags have been removed for
+       the following reasons:
 
        <itemizedlist>
-         <title>PHP <literal>config</literal> flags that we don't read anymore:</title>
-         <listitem><para><literal>config.php.argon2</literal></para></listitem>
-         <listitem><para><literal>config.php.bcmath</literal></para></listitem>
-         <listitem><para><literal>config.php.bz2</literal></para></listitem>
-         <listitem><para><literal>config.php.calendar</literal></para></listitem>
-         <listitem><para><literal>config.php.curl</literal></para></listitem>
-         <listitem><para><literal>config.php.exif</literal></para></listitem>
-         <listitem><para><literal>config.php.ftp</literal></para></listitem>
-         <listitem><para><literal>config.php.gd</literal></para></listitem>
-         <listitem><para><literal>config.php.gettext</literal></para></listitem>
-         <listitem><para><literal>config.php.gmp</literal></para></listitem>
-         <listitem><para><literal>config.php.imap</literal></para></listitem>
-         <listitem><para><literal>config.php.intl</literal></para></listitem>
-         <listitem><para><literal>config.php.ldap</literal></para></listitem>
-         <listitem><para><literal>config.php.libxml2</literal></para></listitem>
-         <listitem><para><literal>config.php.libzip</literal></para></listitem>
-         <listitem><para><literal>config.php.mbstring</literal></para></listitem>
-         <listitem><para><literal>config.php.mysqli</literal></para></listitem>
-         <listitem><para><literal>config.php.mysqlnd</literal></para></listitem>
-         <listitem><para><literal>config.php.openssl</literal></para></listitem>
-         <listitem><para><literal>config.php.pcntl</literal></para></listitem>
-         <listitem><para><literal>config.php.pdo_mysql</literal></para></listitem>
-         <listitem><para><literal>config.php.pdo_odbc</literal></para></listitem>
-         <listitem><para><literal>config.php.pdo_pgsql</literal></para></listitem>
-         <listitem><para><literal>config.php.phpdbg</literal></para></listitem>
-         <listitem><para><literal>config.php.postgresql</literal></para></listitem>
-         <listitem><para><literal>config.php.readline</literal></para></listitem>
-         <listitem><para><literal>config.php.soap</literal></para></listitem>
-         <listitem><para><literal>config.php.sockets</literal></para></listitem>
-         <listitem><para><literal>config.php.sodium</literal></para></listitem>
-         <listitem><para><literal>config.php.sqlite</literal></para></listitem>
-         <listitem><para><literal>config.php.tidy</literal></para></listitem>
-         <listitem><para><literal>config.php.xmlrpc</literal></para></listitem>
-         <listitem><para><literal>config.php.xsl</literal></para></listitem>
-         <listitem><para><literal>config.php.zip</literal></para></listitem>
-         <listitem><para><literal>config.php.zlib</literal></para></listitem>
+         <listitem>
+           <para>
+             The updated <literal>php</literal> attribute is now easily
+             customizable to your liking by using
+             <literal>php.withExtensions</literal> or
+             <literal>php.buildEnv</literal> instead of writing config files
+             or changing configure flags.             
+           </para>
+         </listitem>
+         <listitem>
+           <para>
+             The remaining configuration flags can now be set directly on
+             the <literal>php</literal> attribute. For example, instead of 
+
+             <programlisting>
+php.override {
+  config.php.embed = true;
+  config.php.apxs2 = false;
+}
+             </programlisting>
+
+             you should now write
+
+             <programlisting>
+php.override {
+  embedSupport = true;
+  apxs2Support = false;
+}
+             </programlisting>
+           </para>
+         </listitem>
        </itemizedlist>
+
      </para>
    </listitem>
    <listitem>
diff --git a/nixos/lib/test-driver/test-driver.py b/nixos/lib/test-driver/test-driver.py
index 07f27515990b..d96600b3c990 100644
--- a/nixos/lib/test-driver/test-driver.py
+++ b/nixos/lib/test-driver/test-driver.py
@@ -85,8 +85,6 @@ CHAR_TO_KEY = {
 }
 
 # Forward references
-nr_tests: int
-failed_tests: list
 log: "Logger"
 machines: "List[Machine]"
 
@@ -882,33 +880,16 @@ def run_tests() -> None:
         if machine.is_up():
             machine.execute("sync")
 
-    if nr_tests != 0:
-        nr_succeeded = nr_tests - len(failed_tests)
-        eprint("{} out of {} tests succeeded".format(nr_succeeded, nr_tests))
-        if len(failed_tests) > 0:
-            eprint(
-                "The following tests have failed:\n - {}".format(
-                    "\n - ".join(failed_tests)
-                )
-            )
-            sys.exit(1)
-
 
 @contextmanager
 def subtest(name: str) -> Iterator[None]:
-    global nr_tests
-    global failed_tests
-
     with log.nested(name):
-        nr_tests += 1
         try:
             yield
             return True
         except Exception as e:
-            failed_tests.append(
-                'Test "{}" failed with error: "{}"'.format(name, str(e))
-            )
-            log.log("error: {}".format(str(e)))
+            log.log(f'Test "{name}" failed with error: "{e}"')
+            raise e
 
     return False
 
@@ -928,9 +909,6 @@ if __name__ == "__main__":
     ]
     exec("\n".join(machine_eval))
 
-    nr_tests = 0
-    failed_tests = []
-
     @atexit.register
     def clean_up() -> None:
         with log.nested("cleaning up"):
diff --git a/nixos/modules/config/nsswitch.nix b/nixos/modules/config/nsswitch.nix
index 0acd8900e7b1..77e47a350ecb 100644
--- a/nixos/modules/config/nsswitch.nix
+++ b/nixos/modules/config/nsswitch.nix
@@ -15,7 +15,6 @@ let
   nsswins = canLoadExternalModules && config.services.samba.nsswins;
   ldap = canLoadExternalModules && (config.users.ldap.enable && config.users.ldap.nsswitch);
   resolved = canLoadExternalModules && config.services.resolved.enable;
-  googleOsLogin = canLoadExternalModules && config.security.googleOsLogin.enable;
 
   hostArray = mkMerge [
     (mkBefore [ "files" ])
@@ -32,7 +31,6 @@ let
     (mkBefore [ "files" ])
     (mkIf ldap [ "ldap" ])
     (mkIf mymachines [ "mymachines" ])
-    (mkIf googleOsLogin [ "cache_oslogin oslogin" ])
     (mkIf canLoadExternalModules (mkAfter [ "systemd" ]))
   ];
 
@@ -172,7 +170,6 @@ in {
     # configured IP addresses, or ::1 and 127.0.0.2 as
     # fallbacks. Systemd also provides nss-mymachines to return IP
     # addresses of local containers.
-    system.nssModules = (optionals canLoadExternalModules [ config.systemd.package.out ])
-      ++ optional googleOsLogin pkgs.google-compute-engine-oslogin.out;
+    system.nssModules = (optionals canLoadExternalModules [ config.systemd.package.out ]);
   };
 }
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index 9303e8fde13a..6c7ea293e8ac 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -1,7 +1,7 @@
 # This module contains the basic configuration for building a NixOS
 # installation CD.
 
-{ config, lib, pkgs, ... }:
+{ config, lib, options, pkgs, ... }:
 
 with lib;
 
@@ -15,6 +15,9 @@ with lib;
       ../../profiles/installation-device.nix
     ];
 
+  # Adds terminus_font for people with HiDPI displays
+  console.packages = options.console.packages.default ++ [ pkgs.terminus_font ];
+
   # ISO naming.
   isoImage.isoName = "${config.isoImage.isoBaseName}-${config.system.nixos.label}-${pkgs.stdenv.hostPlatform.system}.iso";
 
diff --git a/nixos/modules/security/google_oslogin.nix b/nixos/modules/security/google_oslogin.nix
index 6f9962e1d626..78c2089baeb9 100644
--- a/nixos/modules/security/google_oslogin.nix
+++ b/nixos/modules/security/google_oslogin.nix
@@ -49,6 +49,7 @@ in
 
     # enable the nss module, so user lookups etc. work
     system.nssModules = [ package ];
+    system.nssDatabases.passwd = [ "cache_oslogin" "oslogin" ];
 
     # Ugly: sshd refuses to start if a store path is given because /nix/store is group-writable.
     # So indirect by a symlink.
diff --git a/nixos/modules/services/mail/roundcube.nix b/nixos/modules/services/mail/roundcube.nix
index 21e92cfee016..ed1439745ac9 100644
--- a/nixos/modules/services/mail/roundcube.nix
+++ b/nixos/modules/services/mail/roundcube.nix
@@ -7,7 +7,7 @@ let
   fpm = config.services.phpfpm.pools.roundcube;
   localDB = cfg.database.host == "localhost";
   user = cfg.database.username;
-  phpWithPspell = pkgs.php.withExtensions (e: [ e.pspell ] ++ pkgs.php.enabledExtensions);
+  phpWithPspell = pkgs.php.withExtensions ({ enabled, all }: [ all.pspell ] ++ enabled);
 in
 {
   options.services.roundcube = {
diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix
index e9ed53857d81..0a5b6047bb58 100644
--- a/nixos/modules/services/web-apps/mediawiki.nix
+++ b/nixos/modules/services/web-apps/mediawiki.nix
@@ -29,7 +29,7 @@ let
       '') cfg.skins)}
 
       ${concatStringsSep "\n" (mapAttrsToList (k: v: ''
-        ln -s ${v} $out/share/mediawiki/extensions/${k}
+        ln -s ${if v != null then v else "$src/share/mediawiki/extensions/${k}"} $out/share/mediawiki/extensions/${k}
       '') cfg.extensions)}
     '';
   };
@@ -204,17 +204,28 @@ in
         default = {};
         type = types.attrsOf types.path;
         description = ''
-          List of paths whose content is copied to the 'skins'
-          subdirectory of the MediaWiki installation.
+          Attribute set of paths whose content is copied to the <filename>skins</filename>
+          subdirectory of the MediaWiki installation in addition to the default skins.
         '';
       };
 
       extensions = mkOption {
         default = {};
-        type = types.attrsOf types.path;
+        type = types.attrsOf (types.nullOr types.path);
         description = ''
-          List of paths whose content is copied to the 'extensions'
-          subdirectory of the MediaWiki installation.
+          Attribute set of paths whose content is copied to the <filename>extensions</filename>
+          subdirectory of the MediaWiki installation and enabled in configuration.
+
+          Use <literal>null</literal> instead of path to enable extensions that are part of MediaWiki.
+        '';
+        example = literalExample ''
+          {
+            Matomo = pkgs.fetchzip {
+              url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz";
+              sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b";
+            };
+            ParserFunctions = null;
+          }
         '';
       };
 
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index 5f6f2bc7a16d..f826096bf608 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -11,8 +11,8 @@ let
       base = pkgs.php74;
     in
       base.buildEnv {
-        extensions = e: with e;
-          base.enabledExtensions ++ [
+        extensions = { enabled, all }: with all;
+          enabled ++ [
             apcu redis memcached imagick
           ];
         extraConfig = phpOptionsStr;
diff --git a/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixos/modules/services/web-servers/apache-httpd/default.nix
index 653c17068346..8abee7130d7c 100644
--- a/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -338,7 +338,7 @@ let
     }
     ''
       cat ${php}/etc/php.ini > $out
-      cat ${php}/lib/custom-php.ini > $out
+      cat ${php.phpIni} > $out
       echo "$options" >> $out
     '';
 
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 2167df60bc9a..58e2f9d3bfce 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -1033,7 +1033,6 @@ in
     systemd.services.systemd-journald.stopIfChanged = false;
     systemd.targets.local-fs.unitConfig.X-StopOnReconfiguration = true;
     systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true;
-    systemd.targets.network-online.wantedBy = [ "multi-user.target" ];
     systemd.services.systemd-binfmt.wants = [ "proc-sys-fs-binfmt_misc.mount" ];
 
     # Don't bother with certain units in containers.
diff --git a/nixos/modules/virtualisation/podman.nix b/nixos/modules/virtualisation/podman.nix
index 35f879840dd9..1dc79272ccb6 100644
--- a/nixos/modules/virtualisation/podman.nix
+++ b/nixos/modules/virtualisation/podman.nix
@@ -4,16 +4,20 @@ let
 
   inherit (lib) mkOption types;
 
+  podmanPackage = (pkgs.podman.override { inherit (cfg) extraPackages; });
+
   # Provides a fake "docker" binary mapping to podman
-  dockerCompat = pkgs.runCommandNoCC "${pkgs.podman.pname}-docker-compat-${pkgs.podman.version}" {
-    outputs = [ "out" "man" ];
-    inherit (pkgs.podman) meta;
+  dockerCompat = pkgs.runCommandNoCC "${podmanPackage.pname}-docker-compat-${podmanPackage.version}" {
+    outputs = [ "out" "bin" "man" ];
+    inherit (podmanPackage) meta;
   } ''
-    mkdir -p $out/bin
-    ln -s ${pkgs.podman}/bin/podman $out/bin/docker
+    mkdir $out
+
+    mkdir -p $bin/bin
+    ln -s ${podmanPackage.bin}/bin/podman $bin/bin/docker
 
     mkdir -p $man/share/man/man1
-    for f in ${pkgs.podman.man}/share/man/man1/*; do
+    for f in ${podmanPackage.man}/share/man/man1/*; do
       basename=$(basename $f | sed s/podman/docker/g)
       ln -s $f $man/share/man/man1/$basename
     done
@@ -52,6 +56,19 @@ in
       '';
     };
 
+    extraPackages = mkOption {
+      type = with types; listOf package;
+      default = [ ];
+      example = lib.literalExample ''
+        [
+          pkgs.gvisor
+        ]
+      '';
+      description = ''
+        Extra packages to be installed in the Podman wrapper.
+      '';
+    };
+
     libpod = mkOption {
       default = {};
       description = "Libpod configuration";
@@ -75,29 +92,24 @@ in
 
   config = lib.mkIf cfg.enable {
 
-    environment.systemPackages = [
-      pkgs.podman # Docker compat
-      pkgs.runc # Default container runtime
-      pkgs.crun # Default container runtime (cgroups v2)
-      pkgs.conmon # Container runtime monitor
-      pkgs.slirp4netns # User-mode networking for unprivileged namespaces
-      pkgs.fuse-overlayfs # CoW for images, much faster than default vfs
-      pkgs.utillinux # nsenter
-      pkgs.iptables
-    ]
-    ++ lib.optional cfg.dockerCompat dockerCompat;
+    environment.systemPackages = [ podmanPackage ]
+      ++ lib.optional cfg.dockerCompat dockerCompat;
 
     environment.etc."containers/libpod.conf".text = ''
       cni_plugin_dir = ["${pkgs.cni-plugins}/bin/"]
-      cni_config_dir = "/etc/cni/net.d/"
 
     '' + cfg.libpod.extraConfig;
 
-    environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman.src}/cni/87-podman-bridge.conflist";
+    environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
 
     # Enable common /etc/containers configuration
     virtualisation.containers.enable = true;
 
+    assertions = [{
+      assertion = cfg.dockerCompat -> !config.virtualisation.docker.enable;
+      message = "Option dockerCompat conflicts with docker";
+    }];
+
   };
 
 }
diff --git a/nixos/tests/elk.nix b/nixos/tests/elk.nix
index d3dc6dde1359..7e87197ed9f3 100644
--- a/nixos/tests/elk.nix
+++ b/nixos/tests/elk.nix
@@ -101,6 +101,7 @@ let
                       prefixed indices. Ignore the error if the filter does not result in an
                       actionable list of indices (ignore_empty_list) and exit cleanly.
                     options:
+                      allow_ilm_indices: true
                       ignore_empty_list: True
                       disable_action: False
                     filters:
diff --git a/nixos/tests/google-oslogin/default.nix b/nixos/tests/google-oslogin/default.nix
index 1977e92e9877..97783c81f397 100644
--- a/nixos/tests/google-oslogin/default.nix
+++ b/nixos/tests/google-oslogin/default.nix
@@ -22,6 +22,8 @@ in {
     client = { ... }: {};
   };
   testScript =  ''
+    MOCKUSER = "mockuser_nixos_org"
+    MOCKADMIN = "mockadmin_nixos_org"
     start_all()
 
     server.wait_for_unit("mock-google-metadata.service")
@@ -29,10 +31,10 @@ in {
 
     # mockserver should return a non-expired ssh key for both mockuser and mockadmin
     server.succeed(
-        '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockuser | grep -q "${snakeOilPublicKey}"'
+        f'${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys {MOCKUSER} | grep -q "${snakeOilPublicKey}"'
     )
     server.succeed(
-        '${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys mockadmin | grep -q "${snakeOilPublicKey}"'
+        f'${pkgs.google-compute-engine-oslogin}/bin/google_authorized_keys {MOCKADMIN} | grep -q "${snakeOilPublicKey}"'
     )
 
     # install snakeoil ssh key on the client, and provision .ssh/config file
@@ -50,20 +52,22 @@ in {
     client.fail("ssh ghost@server 'true'")
 
     # we should be able to connect as mockuser
-    client.succeed("ssh mockuser@server 'true'")
+    client.succeed(f"ssh {MOCKUSER}@server 'true'")
     # but we shouldn't be able to sudo
     client.fail(
-        "ssh mockuser@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
+        f"ssh {MOCKUSER}@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
     )
 
     # we should also be able to log in as mockadmin
-    client.succeed("ssh mockadmin@server 'true'")
+    client.succeed(f"ssh {MOCKADMIN}@server 'true'")
     # pam_oslogin_admin.so should now have generated a sudoers file
-    server.succeed("find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/mockadmin'")
+    server.succeed(
+        f"find /run/google-sudoers.d | grep -q '/run/google-sudoers.d/{MOCKADMIN}'"
+    )
 
     # and we should be able to sudo
     client.succeed(
-        "ssh mockadmin@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
+        f"ssh {MOCKADMIN}@server '/run/wrappers/bin/sudo /run/current-system/sw/bin/id' | grep -q 'root'"
     )
   '';
   })
diff --git a/nixos/tests/google-oslogin/server.py b/nixos/tests/google-oslogin/server.py
index bfc527cb97d3..5ea9bbd2c96b 100644
--- a/nixos/tests/google-oslogin/server.py
+++ b/nixos/tests/google-oslogin/server.py
@@ -7,24 +7,29 @@ import hashlib
 import base64
 
 from http.server import BaseHTTPRequestHandler, HTTPServer
+from urllib.parse import urlparse, parse_qs
 from typing import Dict
 
 SNAKEOIL_PUBLIC_KEY = os.environ['SNAKEOIL_PUBLIC_KEY']
+MOCKUSER="mockuser_nixos_org"
+MOCKADMIN="mockadmin_nixos_org"
 
 
-def w(msg):
+def w(msg: bytes):
     sys.stderr.write(f"{msg}\n")
     sys.stderr.flush()
 
 
-def gen_fingerprint(pubkey):
+def gen_fingerprint(pubkey: str):
     decoded_key = base64.b64decode(pubkey.encode("ascii").split()[1])
     return hashlib.sha256(decoded_key).hexdigest()
 
-def gen_email(username):
+
+def gen_email(username: str):
     """username seems to be a 21 characters long number string, so mimic that in a reproducible way"""
     return str(int(hashlib.sha256(username.encode()).hexdigest(), 16))[0:21]
 
+
 def gen_mockuser(username: str, uid: str, gid: str, home_directory: str, snakeoil_pubkey: str) -> Dict:
     snakeoil_pubkey_fingerprint = gen_fingerprint(snakeoil_pubkey)
     # seems to be a 21 characters long numberstring, so mimic that in a reproducible way
@@ -56,7 +61,8 @@ def gen_mockuser(username: str, uid: str, gid: str, home_directory: str, snakeoi
 
 
 class ReqHandler(BaseHTTPRequestHandler):
-    def _send_json_ok(self, data):
+
+    def _send_json_ok(self, data: dict):
         self.send_response(200)
         self.send_header('Content-type', 'application/json')
         self.end_headers()
@@ -64,29 +70,62 @@ class ReqHandler(BaseHTTPRequestHandler):
         w(out)
         self.wfile.write(out)
 
+    def _send_json_success(self, success=True):
+        self.send_response(200)
+        self.send_header('Content-type', 'application/json')
+        self.end_headers()
+        out = json.dumps({"success": success}).encode()
+        w(out)
+        self.wfile.write(out)
+
+    def _send_404(self):
+        self.send_response(404)
+        self.end_headers()
+
     def do_GET(self):
         p = str(self.path)
-        # mockuser and mockadmin are allowed to login, both use the same snakeoil public key
-        if p == '/computeMetadata/v1/oslogin/users?username=mockuser' \
-            or p == '/computeMetadata/v1/oslogin/users?uid=1009719690':
-            self._send_json_ok(gen_mockuser(username='mockuser', uid='1009719690', gid='1009719690',
-                                            home_directory='/home/mockuser', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY))
-        elif p == '/computeMetadata/v1/oslogin/users?username=mockadmin' \
-            or p == '/computeMetadata/v1/oslogin/users?uid=1009719691':
-            self._send_json_ok(gen_mockuser(username='mockadmin', uid='1009719691', gid='1009719691',
-                                            home_directory='/home/mockadmin', snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY))
-
-        # mockuser is allowed to login
-        elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockuser')}&policy=login":
-            self._send_json_ok({'success': True})
-
-        # mockadmin may also become root
-        elif p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=login" or p == f"/computeMetadata/v1/oslogin/authorize?email={gen_email('mockadmin')}&policy=adminLogin":
-            self._send_json_ok({'success': True})
+        pu = urlparse(p)
+        params = parse_qs(pu.query)
+
+        # users endpoint
+        if pu.path == "/computeMetadata/v1/oslogin/users":
+            # mockuser and mockadmin are allowed to login, both use the same snakeoil public key
+            if params.get('username') == [MOCKUSER] or params.get('uid') == ["1009719690"]:
+                username = MOCKUSER
+                uid = "1009719690"
+            elif params.get('username') == [MOCKADMIN] or params.get('uid') == ["1009719691"]:
+                username = MOCKADMIN
+                uid = "1009719691"
+            else:
+                self._send_404()
+                return
+
+            self._send_json_ok(gen_mockuser(username=username, uid=uid, gid=uid, home_directory=f"/home/{username}", snakeoil_pubkey=SNAKEOIL_PUBLIC_KEY))
+            return
+
+        # authorize endpoint
+        elif pu.path == "/computeMetadata/v1/oslogin/authorize":
+            # is user allowed to login?
+            if params.get("policy") == ["login"]:
+                # mockuser and mockadmin are allowed to login
+                if params.get('email') == [gen_email(MOCKUSER)] or params.get('email') == [gen_email(MOCKADMIN)]:
+                    self._send_json_success()
+                    return
+                self._send_json_success(False)
+                return
+            # is user allowed to become root?
+            elif params.get("policy") == ["adminLogin"]:
+                # only mockadmin is allowed to become admin
+                self._send_json_success((params['email'] == [gen_email(MOCKADMIN)]))
+                return
+            # send 404 for other policies
+            else:
+                self._send_404()
+                return
         else:
             sys.stderr.write(f"Unhandled path: {p}\n")
             sys.stderr.flush()
-            self.send_response(501)
+            self.send_response(404)
             self.end_headers()
             self.wfile.write(b'')
 
diff --git a/nixos/tests/mediawiki.nix b/nixos/tests/mediawiki.nix
index 9468c1de8ccb..008682310cf6 100644
--- a/nixos/tests/mediawiki.nix
+++ b/nixos/tests/mediawiki.nix
@@ -8,6 +8,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: {
       services.mediawiki.virtualHost.hostName = "localhost";
       services.mediawiki.virtualHost.adminAddr = "root@example.com";
       services.mediawiki.passwordFile = pkgs.writeText "password" "correcthorsebatterystaple";
+      services.mediawiki.extensions = {
+        Matomo = pkgs.fetchzip {
+          url = "https://github.com/DaSchTour/matomo-mediawiki-extension/archive/v4.0.1.tar.gz";
+          sha256 = "0g5rd3zp0avwlmqagc59cg9bbkn3r7wx7p6yr80s644mj6dlvs1b";
+        };
+        ParserFunctions = null;
+      };
     };
 
   testScript = ''
diff --git a/nixos/tests/php/fpm.nix b/nixos/tests/php/fpm.nix
index 1e4ced24b6c3..513abd943737 100644
--- a/nixos/tests/php/fpm.nix
+++ b/nixos/tests/php/fpm.nix
@@ -1,6 +1,6 @@
-import ../make-test-python.nix ({pkgs, ...}: {
+import ../make-test-python.nix ({pkgs, lib, ...}: {
   name = "php-fpm-nginx-test";
-  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ etu ];
+  meta.maintainers = lib.teams.php.members;
 
   machine = { config, lib, pkgs, ... }: {
     services.nginx = {
diff --git a/nixos/tests/php/httpd.nix b/nixos/tests/php/httpd.nix
index fc3ff986734e..1092e0ecadd3 100644
--- a/nixos/tests/php/httpd.nix
+++ b/nixos/tests/php/httpd.nix
@@ -1,6 +1,6 @@
-import ../make-test-python.nix ({pkgs, ...}: {
+import ../make-test-python.nix ({pkgs, lib, ...}: {
   name = "php-httpd-test";
-  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ etu ];
+  meta.maintainers = lib.teams.php.members;
 
   machine = { config, lib, pkgs, ... }: {
     services.httpd = {
diff --git a/nixos/tests/php/pcre.nix b/nixos/tests/php/pcre.nix
index 016dca81d522..3dd0964e60fb 100644
--- a/nixos/tests/php/pcre.nix
+++ b/nixos/tests/php/pcre.nix
@@ -1,7 +1,9 @@
 let
   testString = "can-use-subgroups";
-in import ../make-test-python.nix ({ ...}: {
+in import ../make-test-python.nix ({lib, ...}: {
   name = "php-httpd-pcre-jit-test";
+  meta.maintainers = lib.teams.php.members;
+
   machine = { lib, pkgs, ... }: {
     time.timeZone = "UTC";
     services.httpd = {
diff --git a/pkgs/applications/blockchains/zcash/librustzcash/default.nix b/pkgs/applications/blockchains/zcash/librustzcash/default.nix
index 6cd2ae018fb6..526adc715d45 100644
--- a/pkgs/applications/blockchains/zcash/librustzcash/default.nix
+++ b/pkgs/applications/blockchains/zcash/librustzcash/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   installPhase = ''
     mkdir -p $out/lib
-    cp target/release/librustzcash.a $out/lib/
+    cp $releaseDir/librustzcash.a $out/lib/
     mkdir -p $out/include
     cp librustzcash/include/librustzcash.h $out/include/
   '';
diff --git a/pkgs/applications/editors/emacs-modes/emacspeak/default.nix b/pkgs/applications/editors/emacs-modes/emacspeak/default.nix
new file mode 100644
index 000000000000..5bc8bbc6a90e
--- /dev/null
+++ b/pkgs/applications/editors/emacs-modes/emacspeak/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, makeWrapper, emacs, tcl, tclx, espeak-ng }:
+
+stdenv.mkDerivation rec {
+  pname = "emacspeak";
+  version = "51.0";
+
+
+  src = fetchurl {
+    url = "https://github.com/tvraman/emacspeak/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "09a0ywxlqa8jmc0wmvhaf7bdydnkyhy9nqfsdqcpbsgdzj6qpg90";
+  };
+
+  nativeBuildInputs = [ makeWrapper emacs ];
+  buildInputs = [ tcl tclx espeak-ng ];
+
+  preConfigure = ''
+    make config
+  '';
+
+  postBuild = ''
+    make -C servers/native-espeak PREFIX=$out "TCL_INCLUDE=${tcl}/include"
+  '';
+
+  postInstall = ''
+    make -C servers/native-espeak PREFIX=$out install
+    local d=$out/share/emacs/site-lisp/emacspeak/
+    install -d -- "$d"
+    cp -a .  "$d"
+    find "$d" \( -type d -or \( -type f -executable \) \) -execdir chmod 755 {} +
+    find "$d" -type f -not -executable -execdir chmod 644 {} +
+    makeWrapper ${emacs}/bin/emacs $out/bin/emacspeak \
+        --set DTK_PROGRAM "${espeak-ng}/bin/espeak" \
+        --add-flags '-l "${placeholder "out"}/share/emacs/site-lisp/emacspeak/lisp/emacspeak-setup.elc"'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/tvraman/emacspeak/;
+    description = "Emacs extension that provides spoken output";
+    license = licenses.gpl2;
+    maintainers = [ dema ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/editors/emacs-modes/manual-packages.nix b/pkgs/applications/editors/emacs-modes/manual-packages.nix
index 4ca2d736e651..313a21995e03 100644
--- a/pkgs/applications/editors/emacs-modes/manual-packages.nix
+++ b/pkgs/applications/editors/emacs-modes/manual-packages.nix
@@ -65,6 +65,8 @@
     };
   };
 
+  emacspeak = callPackage ./emacspeak {};
+
   ess-R-object-popup =
     callPackage ./ess-R-object-popup { };
 
diff --git a/pkgs/applications/graphics/darktable/default.nix b/pkgs/applications/graphics/darktable/default.nix
index 771e6677b170..948b4ddd54db 100644
--- a/pkgs/applications/graphics/darktable/default.nix
+++ b/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.1";
+  version = "3.0.2";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "1dvwmgnlfvi1lvdhgyddcp5apwlc8v5gwy9gmfcpra8lv8hkjjy5";
+    sha256 = "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
diff --git a/pkgs/applications/misc/alacritty/default.nix b/pkgs/applications/misc/alacritty/default.nix
index c5d7b19618fd..19f0790fea30 100644
--- a/pkgs/applications/misc/alacritty/default.nix
+++ b/pkgs/applications/misc/alacritty/default.nix
@@ -95,7 +95,7 @@ rustPlatform.buildRustPackage rec {
   installPhase = ''
     runHook preInstall
 
-    install -D target/release/alacritty $out/bin/alacritty
+    install -D $releaseDir/alacritty $out/bin/alacritty
 
   '' + (
     if stdenv.isDarwin then ''
diff --git a/pkgs/applications/misc/birdtray/default.nix b/pkgs/applications/misc/birdtray/default.nix
index 00707fc7ec58..5385cf67884d 100644
--- a/pkgs/applications/misc/birdtray/default.nix
+++ b/pkgs/applications/misc/birdtray/default.nix
@@ -11,13 +11,13 @@
 
 mkDerivation rec {
   pname = "birdtray";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "gyunaev";
     repo = pname;
     rev = version;
-    sha256 = "15d0gz889vf9b2a046m93s5kdi6lw2sqjd5gaxgjkjrs20x5vr18";
+    sha256 = "15l8drdmamq1dpqpj0h9ajj2r5vcs23cx421drvhfgs6bqlzd1hl";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/misc/googler/default.nix b/pkgs/applications/misc/googler/default.nix
index 3e4c9828edec..fba36f5e8ac7 100644
--- a/pkgs/applications/misc/googler/default.nix
+++ b/pkgs/applications/misc/googler/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "googler";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13jj15ph0vmbyxjslzl6z4h5b7wyllvhwgsrb6zf7qlkcmkd4vwy";
+    sha256 = "04d7n2l159s7c9xzvyvbnbii1k3zdbajagpx09x1l692cwjbvpxw";
   };
 
   propagatedBuildInputs = [ python ];
diff --git a/pkgs/applications/misc/havoc/default.nix b/pkgs/applications/misc/havoc/default.nix
new file mode 100644
index 000000000000..fc4cc680ca4d
--- /dev/null
+++ b/pkgs/applications/misc/havoc/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, libxkbcommon, wayland, wayland-protocols }:
+
+stdenv.mkDerivation rec {
+
+  pname = "havoc";
+  version = "2019-12-08";
+
+  src = fetchFromGitHub {
+    owner = "ii8";
+    repo = pname;
+    rev = "507446c92ed7bf8380a58c5ba2b14aba5cdf412c";
+    sha256 = "13nfnan1gmy4cqxmqv0rc8a4mcb1g62v73d56hy7z2psv4am7a09";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxkbcommon wayland wayland-protocols ];
+
+  dontConfigure = true;
+
+  installFlags = [ "PREFIX=$$out" ];
+
+  postInstall = ''
+    install -D -m 644 havoc.cfg -t $out/etc/${pname}/
+    install -D -m 644 README.md -t $out/share/doc/${pname}-${version}/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A minimal terminal emulator for Wayland";
+    homepage = "https://github.com/ii8/havoc";
+    license = with licenses; [ mit publicDomain ];
+    platforms = with platforms; unix;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index 7fc042832b50..e58c933b84b7 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.69.0";
+  version = "0.69.2";
 
   goPackagePath = "github.com/gohugoio/hugo";
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "050gqjrdfy5ygwl60qdspjn9s6a84k311g3p2fk3sr7i4rnwf36l";
+    sha256 = "0bw31264q8w2r3fm3g2qjh9531nmbn942vl5rjf2cjff25c0d4ji";
   };
 
-  modSha256 = "07zfqz7d2slswiyx0pw6ip4l428q7nc3i95d4w6d7hfqp0pvp6i0";
+  modSha256 = "1i1mw8jcklmnsqawc1jkgw4h1dxjxb9zaf2p8pgfzxzpy5cp6qkl";
 
   buildFlags = [ "-tags" "extended" ];
 
diff --git a/pkgs/applications/misc/st/default.nix b/pkgs/applications/misc/st/default.nix
index 33924bdb7be5..018fd9306ae5 100644
--- a/pkgs/applications/misc/st/default.nix
+++ b/pkgs/applications/misc/st/default.nix
@@ -4,18 +4,17 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "st-0.8.2";
+  name = "st-0.8.3";
 
   src = fetchurl {
     url = "https://dl.suckless.org/st/${name}.tar.gz";
-    sha256 = "0ddz2mdp1c7q67rd5vrvws9r0493ln0mlqyc3d73dv8im884xdxf";
+    sha256 = "0ll5wbw1szs70wdf8zy1y2ig5mfbqw2w4ls8d64r8z3y4gdf76lk";
   };
 
   inherit patches;
 
-  prePatch = optionalString (conf != null) ''
-    cp ${writeText "config.def.h" conf} config.def.h
-  '';
+  configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
+  postPatch = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
   nativeBuildInputs = [ pkgconfig ncurses ];
   buildInputs = [ libX11 libXft ] ++ extraLibs;
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 77505b47d857..40ddafd2541a 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
 # This file is autogenerated from update.sh in the same directory.
 {
   beta = {
-    sha256 = "1s16wl101yabq0l7w0q50lxkr2gn090pcaj6l5sj6g5xvi9lhgbf";
-    sha256bin64 = "0k6fsqlpiwp9vds83hb3cg9xf74hqgbfdm3ijyad2rmwc5rqk0ax";
-    version = "83.0.4103.14";
+    sha256 = "1s3flhzp69g62285r9nwc5m9fa65ldx19inwdm4nq1m5bn63v6lj";
+    sha256bin64 = "0xbbj89xx98vvw1a4l4wj7hhwjasdmkxbbkgaad2cj4zqmbb8h52";
+    version = "83.0.4103.23";
   };
   dev = {
-    sha256 = "0djppzwzpfyyfjb1mhy5wws2379m3wpzyk2x3kw5nd0mdz35hbny";
-    sha256bin64 = "1wg55qhfvd5zvigjl6496za81mh9b2c5da53zy07bk8wj91ly8pf";
-    version = "84.0.4115.5";
+    sha256 = "1jgx55sb3azwb2rni89yxlz94j264iilwh0br29sngcailxamrbd";
+    sha256bin64 = "107yndkcdb78zxpswn9aja63n0q4q5q49183058z5jm4zlplkgad";
+    version = "84.0.4122.7";
   };
   stable = {
-    sha256 = "0ahqh3vmzbpai4xwn7qybgw9phc8ssjdvfc7384mxqk9swqgv7qg";
-    sha256bin64 = "0gpgim244594m35qwf625blwdqgjbp4qr846wq75a9a9zqwqs05w";
-    version = "81.0.4044.122";
+    sha256 = "1ls663s1f74p912x42qp3zcvm17kmjiv1ij6yy1c14gdhcpmjx7z";
+    sha256bin64 = "0nzds27x1j3298cq5xkgikjdddymbw88gcpnlm03492b6090257y";
+    version = "81.0.4044.129";
   };
 }
diff --git a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
index ba3b1e4d889b..ec5a79e9acee 100644
--- a/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
@@ -1,19 +1,20 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs goPackagePath preBuild;
+  inherit (minikube) version src nativeBuildInputs buildInputs modSha256 commit;
 
   pname = "docker-machine-hyperkit";
-  subPackages = [ "cmd/drivers/hyperkit" ];
 
-  modSha256   = minikube.go-modules.outputHash;
+  buildPhase = ''
+    make docker-machine-driver-hyperkit COMMIT=${commit}
+  '';
 
-  postInstall = ''
-    mv $out/bin/hyperkit $out/bin/docker-machine-driver-hyperkit
+  installPhase = ''
+    install out/docker-machine-driver-hyperkit -Dt $out/bin
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/kubernetes/minikube/blob/master/docs/drivers.md";
+    homepage = "https://minikube.sigs.k8s.io/docs/drivers/hyperkit";
     description = "HyperKit driver for docker-machine.";
     license = licenses.asl20;
     maintainers = with maintainers; [ atkinschang ];
diff --git a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index 6659b18b1bd2..6af1bf126b56 100644
--- a/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -1,22 +1,27 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs goPackagePath preBuild;
+  inherit (minikube) version src nativeBuildInputs buildInputs modSha256 commit;
 
   pname = "docker-machine-kvm2";
-  subPackages = [ "cmd/drivers/kvm" ];
 
-  modSha256   = minikube.go-modules.outputHash;
+  postPatch = ''
+    sed -i '/GOARCH=$*/d' Makefile
+  '';
+
+  buildPhase = ''
+    make docker-machine-driver-kvm2 COMMIT=${commit}
+  '';
 
-  postInstall = ''
-    mv $out/bin/kvm $out/bin/docker-machine-driver-kvm2
+  installPhase = ''
+    install out/docker-machine-driver-kvm2 -Dt $out/bin
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/kubernetes/minikube/blob/master/docs/drivers.md";
+    homepage = "https://minikube.sigs.k8s.io/docs/drivers/kvm2";
     description = "KVM2 driver for docker-machine.";
     license = licenses.asl20;
     maintainers = with maintainers; [ tadfisher atkinschang ];
-    platforms = platforms.unix;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/networking/cluster/kubernix/default.nix b/pkgs/applications/networking/cluster/kubernix/default.nix
new file mode 100644
index 000000000000..2251b12e499a
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubernix/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kubernix";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "saschagrunert";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04dzfdzjwcwwaw9min322g30q0saxpq5kqzld4f22fmk820ki6gp";
+  };
+
+  cargoSha256 = "17agwqx7nhzi124yq1s6zpqb227drrhp9c11r3jbicc08dz88bwg";
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Single dependency Kubernetes clusters for local testing, experimenting and development";
+    homepage = "https://github.com/saschagrunert/kubernix";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/networking/cluster/minikube/default.nix b/pkgs/applications/networking/cluster/minikube/default.nix
index d48a28f46a89..9c5727ec7358 100644
--- a/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/pkgs/applications/networking/cluster/minikube/default.nix
@@ -1,67 +1,56 @@
 { stdenv
 , buildGoModule
 , fetchFromGitHub
-, pkgconfig
-, makeWrapper
 , go-bindata
+, installShellFiles
+, pkg-config
+, which
 , libvirt
 , vmnet
 }:
 
 buildGoModule rec {
-  pname   = "minikube";
+  pname = "minikube";
   version = "1.9.2";
+
   # for -ldflags
-  commit  = "1b78a7b8a99ad6a3c62b8d22f57120d614d17935";
+  commit = "1b78a7b8a99ad6a3c62b8d22f57120d614d17935";
 
-  goPackagePath = "k8s.io/minikube";
-  subPackages   = [ "cmd/minikube" ];
-  modSha256     = "1pxs6myszgma3rzz0nhfjbnylv6m0xzlinvmlg0c4ijvkkzxg3v5";
+  modSha256 = "1pxs6myszgma3rzz0nhfjbnylv6m0xzlinvmlg0c4ijvkkzxg3v5";
 
   src = fetchFromGitHub {
-    owner  = "kubernetes";
-    repo   = "minikube";
-    rev    = "v${version}";
+    owner = "kubernetes";
+    repo = "minikube";
+    rev = "v${version}";
     sha256 = "025v45427d885qkjjg7ig8fgrvjalnf1lajsj0cnbwbih2m69svg";
   };
 
-  nativeBuildInputs = [ pkgconfig go-bindata makeWrapper ];
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ libvirt ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ vmnet ];
-
-  preBuild = ''
-    go-bindata -nomemcopy -o pkg/minikube/assets/assets.go -pkg assets deploy/addons/...
-    go-bindata -nomemcopy -o pkg/minikube/translate/translations.go -pkg translate translations/...
+  nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
 
-    VERSION_MAJOR=$(grep "^VERSION_MAJOR" Makefile | sed "s/^.*\s//")
-    VERSION_MINOR=$(grep "^VERSION_MINOR" Makefile | sed "s/^.*\s//")
-    ISO_VERSION=v$VERSION_MAJOR.$VERSION_MINOR.0
-    ISO_BUCKET=$(grep "^ISO_BUCKET" Makefile | sed "s/^.*\s//")
+  buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null;
 
-    export buildFlagsArray="-ldflags=\
-      -X ${goPackagePath}/pkg/version.version=v${version} \
-      -X ${goPackagePath}/pkg/version.isoVersion=$ISO_VERSION \
-      -X ${goPackagePath}/pkg/version.isoPath=$ISO_BUCKET \
-      -X ${goPackagePath}/pkg/version.gitCommitID=${commit} \
-      -X ${goPackagePath}/pkg/drivers/kvm.version=v${version} \
-      -X ${goPackagePath}/pkg/drivers/kvm.gitCommitID=${commit} \
-      -X ${goPackagePath}/pkg/drivers/hyperkit.version=v${version} \
-      -X ${goPackagePath}/pkg/drivers/hyperkit.gitCommitID=${commit}"
+  buildPhase = ''
+    make COMMIT=${commit}
   '';
 
-  postInstall = ''
-    mkdir -p $out/share/bash-completion/completions/
-    MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion bash > $out/share/bash-completion/completions/minikube
+  installPhase = ''
+    install out/minikube -Dt $out/bin
+
+    export HOME=$PWD
+    export MINIKUBE_WANTUPDATENOTIFICATION=false
+    export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
 
-    mkdir -p $out/share/zsh/site-functions/
-    MINIKUBE_WANTUPDATENOTIFICATION=false MINIKUBE_WANTKUBECTLDOWNLOADMSG=false HOME=$PWD $out/bin/minikube completion zsh > $out/share/zsh/site-functions/_minikube
+    for shell in bash zsh; do
+      $out/bin/minikube completion $shell > minikube.$shell
+      installShellCompletion minikube.$shell
+    done
   '';
 
   meta = with stdenv.lib; {
-    homepage    = "https://github.com/kubernetes/minikube";
+    homepage = "https://minikube.sigs.k8s.io";
     description = "A tool that makes it easy to run Kubernetes locally";
-    license     = licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ ebzzry copumpkin vdemeester atkinschang ];
-    platforms   = with platforms; unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/data.nix b/pkgs/applications/networking/cluster/terraform-providers/data.nix
index d07b6321cb2c..6994f2b85a33 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/data.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/data.nix
@@ -4,9 +4,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-aci";
-      rev     = "v0.1.8";
-      version = "0.1.8";
-      sha256  = "14hya00ygz0khljjxwvkp6wbrbsavh2n8f26s2mjakph2havb8a3";
+      rev     = "v0.2.1";
+      version = "0.2.1";
+      sha256  = "1ylc3w5m68q7vvdignrgw3kwdmrw7w0blmfffxc4cam0a6a7q05l";
     };
   acme =
     {
@@ -28,9 +28,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-alicloud";
-      rev     = "v1.77.0";
-      version = "1.77.0";
-      sha256  = "0g8i8dmxzgkzylh2hh4fa9nq6x8bmxqaz0ly0f0cijb82lcbc3qf";
+      rev     = "v1.80.1";
+      version = "1.80.1";
+      sha256  = "0d483lp3rwz99f77sds717hafzbz1z7gq58dw52qzqagam8lrc10";
     };
   archive =
     {
@@ -52,33 +52,33 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-auth0";
-      rev     = "v0.8.1";
-      version = "0.8.1";
-      sha256  = "0hfmbw76p99xa9jz2sjss56p4wzqqhnf9l9gqgyamywfrdd2bn57";
+      rev     = "v0.9.3";
+      version = "0.9.3";
+      sha256  = "04dd7jxhpw2dqj6h3sbknbl1fa92jzshznm8icxrjajpxhcnbc32";
     };
-  aviatrix =
+  avi =
     {
       owner   = "terraform-providers";
-      repo    = "terraform-provider-aviatrix";
-      rev     = "v2.12.0";
-      version = "2.12.0";
-      sha256  = "01n3cqb5k8gd0cll3nqbdmnx3mi0scm57j0xpzhxnif14kpj15g6";
+      repo    = "terraform-provider-avi";
+      rev     = "18.2.8";
+      version = "18.2.8";
+      sha256  = "0vpa6wksvb4gz65hgq0vizw0bky400bqh9zgf41g0mqkhv3wwb4i";
     };
-  avi =
+  aviatrix =
     {
       owner   = "terraform-providers";
-      repo    = "terraform-provider-avi";
-      rev     = "v0.2.1";
-      version = "0.2.1";
-      sha256  = "1pyknx5maq1qxm4i2y69iz9c2ym3q3n0fd4hbwxcl83n39cb5iy6";
+      repo    = "terraform-provider-aviatrix";
+      rev     = "v2.13.0";
+      version = "2.13.0";
+      sha256  = "1913fp3lfvdr3npwr0vbdhb4xsvyyr1r76hv3h7rg5fidf3vpw5a";
     };
   aws =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-aws";
-      rev     = "v2.55.0";
-      version = "2.55.0";
-      sha256  = "0pxmwdy5cin0navva1nf3l02yrqqbg01xcq3hf8w0ch8fgr8mr25";
+      rev     = "v2.59.0";
+      version = "2.59.0";
+      sha256  = "0hkvjvabw8phl5mb9km2dxm64a5lf56g9aq9qf593zsij1rsjwkk";
     };
   azuread =
     {
@@ -92,9 +92,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-azurerm";
-      rev     = "v2.3.0";
-      version = "2.3.0";
-      sha256  = "195r6l0ddpjmmf947c1k5v0vdscnhsg2ilp6x7pna418pnx84y2d";
+      rev     = "v2.7.0";
+      version = "2.7.0";
+      sha256  = "0w4bafj3kn5kvkrc26ix1y9rgf3w4810x7la7g1aclpg7507fcv3";
     };
   azurestack =
     {
@@ -108,9 +108,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-baiducloud";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "1va0b9vqfcv2nrqh8jwf80ylyl1x826jhb7h4ghnf18c144qm0i1";
+      rev     = "v1.2.0";
+      version = "1.2.0";
+      sha256  = "1s2vk4vjni5nc50pdw60pm0grrf835xy551i6d4cmfxkkpqx3f6f";
     };
   bigip =
     {
@@ -180,17 +180,25 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-cloudflare";
-      rev     = "v2.5.0";
-      version = "2.5.0";
-      sha256  = "1dqxn2iwbidmfb0850sicwqh4yp6ynarkl36lnr8nqw9lasvqr5a";
+      rev     = "v2.6.0";
+      version = "2.6.0";
+      sha256  = "01z2znif5yy4bawcf76b6d0j3b67fljbx87b4b2cb5vqy4l4aamk";
+    };
+  cloudinit =
+    {
+      owner   = "hashicorp";
+      repo    = "terraform-provider-cloudinit";
+      rev     = "v1.0.0";
+      version = "1.0.0";
+      sha256  = "0i926f4xkfydd2bxmim69xrvi9ymn1vrc66zl117axzsmy9200zx";
     };
   cloudscale =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-cloudscale";
-      rev     = "v2.1.1";
-      version = "2.1.1";
-      sha256  = "122yi2wbd8mqddkwp2la6vwqw0kw7c9ff5j6y4xqczjg2bwb9mph";
+      rev     = "v2.1.2";
+      version = "2.1.2";
+      sha256  = "052pa17a77fkmhvygfgmpz87xlc08qvz1apzc2scg2449xfdv7zb";
     };
   cloudstack =
     {
@@ -228,9 +236,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-digitalocean";
-      rev     = "v1.15.1";
-      version = "1.15.1";
-      sha256  = "0nld6lgz5vy8n4s0y0wpssrslp866rha2znli6pd5sw1nvi6yg0z";
+      rev     = "v1.16.0";
+      version = "1.16.0";
+      sha256  = "0yymgkn66a9mif0wic4rais7ap6d4gfxij835ssr2pr3rb49ay8d";
     };
   dme =
     {
@@ -268,9 +276,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-dome9";
-      rev     = "v1.17.0";
-      version = "1.17.0";
-      sha256  = "123phc71rnb25lv9glybadhmr3pdsrbzl7xm6mj8j213a78qdmn5";
+      rev     = "v1.18.1";
+      version = "1.18.1";
+      sha256  = "0m4fxpik55z9ah5nlhvy314xyxvlaldqbwdp3bx1xs9kpm3znvyl";
     };
   dyn =
     {
@@ -284,9 +292,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-exoscale";
-      rev     = "v0.16.1";
-      version = "0.16.1";
-      sha256  = "0gs39nx12ws0ikal9zyqkyfiljbxbw0pj7llj9xsq96s7crvy6xr";
+      rev     = "v0.16.2";
+      version = "0.16.2";
+      sha256  = "102z4v3shk0as76v90151j4c6p93wy16m1hzzk1yp50dlc8ffsks";
     };
   external =
     {
@@ -300,9 +308,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-fastly";
-      rev     = "v0.13.0";
-      version = "0.13.0";
-      sha256  = "0mcjmk21fil4q98p8v3qln7s2fqbdkjv1pvba0cf9v9d101dhhi9";
+      rev     = "v0.14.0";
+      version = "0.14.0";
+      sha256  = "1ak5gyrv66dnf5qy54hvwc4478n3cs5nxd0nwa2vf0gn2zp55bhy";
     };
   flexibleengine =
     {
@@ -332,33 +340,33 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-github";
-      rev     = "v2.5.1";
-      version = "2.5.1";
-      sha256  = "1lqnwq5gsz34n6zzwajxrh0i1cbyicl4zxakr4fch7makri2fqwg";
+      rev     = "v2.6.1";
+      version = "2.6.1";
+      sha256  = "1hg5pij2hllj6m6x8salsgw404ap7pw6yccvgynw4y4k26dl0jlr";
     };
   gitlab =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-gitlab";
-      rev     = "v2.5.0";
-      version = "2.5.0";
-      sha256  = "1g7girhjks6p7rcs82p2zd8clp6kdfn6d1synlmfwiw6d3496fvf";
+      rev     = "v2.6.0";
+      version = "2.6.0";
+      sha256  = "0qy58fgwipcjwxz473rpcnpkb22n9hqsjckx88lhc2br4pgbcbrd";
     };
   google-beta =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-google-beta";
-      rev     = "v3.15.0";
-      version = "3.15.0";
-      sha256  = "1xncw82y48dcc464v2gzfmr94l3kgh9x2rlmpmmy6g4mihiwh38b";
+      rev     = "v3.18.0";
+      version = "3.18.0";
+      sha256  = "1rsaqrgr6ddgx1pala83y70dk32s0mvf6vi877awmimxjzsa1l4r";
     };
   google =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-google";
-      rev     = "v3.15.0";
-      version = "3.15.0";
-      sha256  = "0vw7sndy441xn34kiv2k9hq9p9g649amh7bk91rf0f5p8cmyll1c";
+      rev     = "v3.18.0";
+      version = "3.18.0";
+      sha256  = "18cxl1qw1wyvzvhgjm1s3c19hbi5z9s6mipgazhrac70myw8dmy7";
     };
   grafana =
     {
@@ -372,9 +380,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-gridscale";
-      rev     = "v1.5.0";
-      version = "1.5.0";
-      sha256  = "05nzia9sa555k07gkhyyckdgn9n6a50w8l3id69rjq1jjh0pngd7";
+      rev     = "v1.5.1";
+      version = "1.5.1";
+      sha256  = "0m5j9y26a7jl3frnw1j8gll999brprgf0i29p201d3c9b02pxnla";
     };
   hcloud =
     {
@@ -404,9 +412,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-heroku";
-      rev     = "v2.3.0";
-      version = "2.3.0";
-      sha256  = "1lv3l54fw6rgj2ixkz2dvaf3djj3slhrm0nlbza5c7zjb945igfq";
+      rev     = "v2.4.0";
+      version = "2.4.0";
+      sha256  = "1rhny1mbkqkfiqshps5mc5f3ykxnpypsdi72hw4g1k29pbvr4hh8";
     };
   http =
     {
@@ -428,9 +436,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-huaweicloud";
-      rev     = "v1.13.0";
-      version = "1.13.0";
-      sha256  = "1caix3lycqnd856z6c3zp9mmq3vr7rblwhhbkwn4rrcld8sv285j";
+      rev     = "v1.14.0";
+      version = "1.14.0";
+      sha256  = "10g5xl3pspzmj0bjzqbw3br4k7kh2jplph06f7sz2zg9dncl4h5z";
+    };
+  ibm =
+    {
+      owner   = "IBM-Cloud";
+      repo    = "terraform-provider-ibm";
+      rev     = "v1.4.0";
+      version = "1.4.0";
+      sha256  = "147vl55g6c49ihk8z2hwfq2v7g1yj35id1qfjlz0dxalm7cwa3l6";
     };
   icinga2 =
     {
@@ -464,6 +480,14 @@
       version = "1.3.0";
       sha256  = "19af40g8hgz2rdz6523v0fs71ww7qdlf2mh5j9vb7pfzriqwa5k9";
     };
+  infoblox =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-infoblox";
+      rev     = "v1.0.0";
+      version = "1.0.0";
+      sha256  = "0p95y5w3fzddygmsjc0j60z0f4aazvy5iwbwszj0i8gs42qhda2f";
+    };
   jdcloud =
     {
       owner   = "terraform-providers";
@@ -484,9 +508,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-launchdarkly";
-      rev     = "v1.1.0";
-      version = "1.1.0";
-      sha256  = "1gj0srv8shn6qg109y1g42dx8dybkp3qrjn412bvs6f063ggk0zs";
+      rev     = "v1.2.2";
+      version = "1.2.2";
+      sha256  = "0rvyzn2a8bh8hvd3f6whfwzpx2frqnfmh8nwlasb0r4xya8lv3bc";
     };
   librato =
     {
@@ -500,9 +524,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-linode";
-      rev     = "v1.9.2";
-      version = "1.9.2";
-      sha256  = "1nrk8fi0fwkcm4csrppjwv7vd2ilpbj01dywak696nj8b15w176q";
+      rev     = "v1.9.3";
+      version = "1.9.3";
+      sha256  = "12jwvpnv4xl9crq6jynking2rcl4ci8ci22db3fadigxqs98hb4w";
     };
   local =
     {
@@ -556,9 +580,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-mongodbatlas";
-      rev     = "v0.4.2";
-      version = "0.4.2";
-      sha256  = "0cb8dh7bwz9yzyhz8v9j6ksi4dgmmz8d1qpm7234rj36ccirnjmz";
+      rev     = "v0.5.0";
+      version = "0.5.0";
+      sha256  = "15m7qmn1gd7gmzlqgf2q70kmihf8ihqabpkf122pxhb3iyikwh77";
     };
   mysql =
     {
@@ -604,17 +628,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-nomad";
-      rev     = "v1.4.4";
-      version = "1.4.4";
-      sha256  = "05029s8h8vx7pl0y3d9cd5nlww3483caxhwkbrmk0vs7zdgxk8ns";
+      rev     = "v1.4.5";
+      version = "1.4.5";
+      sha256  = "1sccm4mspjn92ky6nscsrmbb573mx53wzsvvapsf2p4119h9s30i";
     };
   ns1 =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-ns1";
-      rev     = "v1.8.0";
-      version = "1.8.0";
-      sha256  = "1h1pqrj11wdi0fnrrh2mkwahi59jl2vd8affy4acx7kny4n92s49";
+      rev     = "v1.8.1";
+      version = "1.8.1";
+      sha256  = "04s46f40md8hrqqiwj6wcq4qpx0115qk8hwbln9a7lsrh0zmmmb3";
     };
   nsxt =
     {
@@ -644,9 +668,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-oci";
-      rev     = "v3.69.0";
-      version = "3.69.0";
-      sha256  = "17vndv6bpa9ajs7llnf64bb482b15virbv311d3ds5lrva4vvrv8";
+      rev     = "v3.72.0";
+      version = "3.72.0";
+      sha256  = "05sl702b0j9lpsy3bjac104qngjlsln0v2ni8a78j97xif8jb0an";
     };
   oktaasa =
     {
@@ -660,9 +684,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-okta";
-      rev     = "v3.1.1";
-      version = "3.1.1";
-      sha256  = "1hky6hqrfyl2gj1lykb7gazj9awjgsxhc028558whm5rysx2wpsr";
+      rev     = "v3.2.0";
+      version = "3.2.0";
+      sha256  = "13z5srra4pj5p2dwzrqiny2ph4vmmp8q59ycmd7x2yi93fd02mcl";
     };
   oneandone =
     {
@@ -676,9 +700,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-opc";
-      rev     = "v1.3.7";
-      version = "1.3.7";
-      sha256  = "01g09w8mqfp1d8phplsdj0vz63q5bgq9fqwy2kp4vrnwb70dq52w";
+      rev     = "v1.4.0";
+      version = "1.4.0";
+      sha256  = "1yl8bbh4pf94wlmna294zcawylr9hiaix82wr321g9wb0vi3d5l8";
     };
   opennebula =
     {
@@ -692,9 +716,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-openstack";
-      rev     = "v1.26.0";
-      version = "1.26.0";
-      sha256  = "1vsvzs8112vbi0x99yg6niw0wr55p09x7cg85qwjd0r42gpfdfq2";
+      rev     = "v1.27.0";
+      version = "1.27.0";
+      sha256  = "0d6dms5y8vndcm10zfid1g13c5fi19z7hqll8z07jr0hgvhbzp2v";
     };
   opentelekomcloud =
     {
@@ -708,9 +732,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-opsgenie";
-      rev     = "v0.2.9";
-      version = "0.2.9";
-      sha256  = "13y6awnm9j5qzq1bcmhg7ngzvx43h2dw9wmzdfi1xcpmv1ldvwpi";
+      rev     = "v0.3.1";
+      version = "0.3.1";
+      sha256  = "1ciqhibij0fk2z20yabl464mj9srp1v6dy04dyazmxkw46bm1lc5";
     };
   oraclepaas =
     {
@@ -732,17 +756,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-packet";
-      rev     = "v2.8.0";
-      version = "2.8.0";
-      sha256  = "1qnjla347hll0fav0ngnifblk6slbmh1klnm7k9jv327jmv92hz5";
+      rev     = "v2.8.1";
+      version = "2.8.1";
+      sha256  = "1idrvkc2bbp3vwz2w45nazr1hq10f7bmyamb57q7mlswydcyk6b2";
     };
   pagerduty =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-pagerduty";
-      rev     = "v1.5.1";
-      version = "1.5.1";
-      sha256  = "12n12sx1qxckqklcaphzr0j9bcwzrl6p8qzdc3d2csiqccqrpdas";
+      rev     = "v1.7.0";
+      version = "1.7.0";
+      sha256  = "168v1mpl9df63yp8zjq79hyxcjj4imyzg20rdn6n71d6iz8v85g8";
     };
   panos =
     {
@@ -780,9 +804,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-profitbricks";
-      rev     = "v1.4.4";
-      version = "1.4.4";
-      sha256  = "0pzcl3pdhaykihvv1v38zrv607mydchvkzrzhwcakgmdkp3vq54i";
+      rev     = "v1.5.0";
+      version = "1.5.0";
+      sha256  = "0v9x8sj9c6acmbnkv4bnjvz93dd1fmg9b98rwghiakf968hxx6hl";
     };
   pureport =
     {
@@ -804,9 +828,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-rancher2";
-      rev     = "v1.8.1";
-      version = "1.8.1";
-      sha256  = "15pvz1sd1x932yxdp7d679vax3dw56bfhp3422vxqsgmdgscwg1s";
+      rev     = "v1.8.3";
+      version = "1.8.3";
+      sha256  = "1k2d9j17b7sssliraww6as196ihdcra1ylhg1qbynklpr0asiwna";
     };
   rancher =
     {
@@ -884,17 +908,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-signalfx";
-      rev     = "v4.18.6";
-      version = "4.18.6";
-      sha256  = "1xjajkvkcksz0dnawjb3hv14ysp140g0vdj5warshafz8hjbys17";
+      rev     = "v4.19.4";
+      version = "4.19.4";
+      sha256  = "15cf9paqrcznj99gv6mxqvgvkd8qbxkwz2145h2qxp5vdcykj78g";
     };
   skytap =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-skytap";
-      rev     = "v0.14.0";
-      version = "0.14.0";
-      sha256  = "01cscykfw5qilf5rlvh7y2l3bqbv8f180ssqw7zqzyr9p4m6511l";
+      rev     = "v0.14.1";
+      version = "0.14.1";
+      sha256  = "0ygsdkv7czyhsjsx1q57rmmcl8x66d65yarhg40hlng5c7xpi52g";
     };
   softlayer =
     {
@@ -904,6 +928,14 @@
       version = "0.0.1";
       sha256  = "1xcg5zm2n1pc3l7ng94k589r7ykv6fxsmr5qn9xmmpdf912rdnfq";
     };
+  sops =
+    {
+      owner   = "carlpett";
+      repo    = "terraform-provider-sops";
+      rev     = "v0.5.0";
+      version = "0.5.0";
+      sha256  = "18zhqjkw1639a1vrxniws3sf5p91vrf5m7kksaj3yfiavsr5q2ki";
+    };
   spotinst =
     {
       owner   = "terraform-providers";
@@ -928,6 +960,14 @@
       version = "1.0.0";
       sha256  = "1x295va6c72465cxps0kx3rrb7s9aip2cniy6icsg1b2yrsb9b26";
     };
+  sumologic =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-sumologic";
+      rev     = "v2.0.0";
+      version = "2.0.0";
+      sha256  = "0j6lq9xcc3znjd4yd8gyzsbhwbbwi95k16kj1la9cicbvgra8iap";
+    };
   telefonicaopencloud =
     {
       owner   = "terraform-providers";
@@ -948,9 +988,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-tencentcloud";
-      rev     = "v1.30.7";
-      version = "1.30.7";
-      sha256  = "0d7byng63sxbgn8f5r92lkcaqvq3r0plm619h63f47h6z6z8xarc";
+      rev     = "v1.32.0";
+      version = "1.32.0";
+      sha256  = "014zgslr14r446qifk4slq9g5qydxs7bk181gw227k9mr6krgba1";
     };
   terraform =
     {
@@ -964,9 +1004,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-tfe";
-      rev     = "v0.15.1";
-      version = "0.15.1";
-      sha256  = "0372yjifsr4kvbc36hzhzf6ajlg6wy1r2x94p67m7rgr2fw061n2";
+      rev     = "v0.16.0";
+      version = "0.16.0";
+      sha256  = "0c9csyp655wijlnr3rbmymg6gaa23y4fyav0b1y99qsxaa358af5";
     };
   tls =
     {
@@ -984,13 +1024,21 @@
       version = "0.6.0";
       sha256  = "10z032fa64sd8d6r4v2f4m7gp93v8wb2zk2r13fflzg5rfk5740z";
     };
+  turbot =
+    {
+      owner   = "terraform-providers";
+      repo    = "terraform-provider-turbot";
+      rev     = "v1.1.0";
+      version = "1.1.0";
+      sha256  = "1wb5n17rv1r5jn6xdzjjafw7s96i826x9ww8w6llllihgl798zn7";
+    };
   ucloud =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-ucloud";
-      rev     = "v1.17.0";
-      version = "1.17.0";
-      sha256  = "0dpy3bkrm20sk4zpkikas5c8ygl0zf9v6cnd34iblw1m41f44n7v";
+      rev     = "v1.19.0";
+      version = "1.19.0";
+      sha256  = "17wkhhxvriqix520nv4q4jrk7gah8kkq3l4nj0rzp1kdwxphmsz0";
     };
   ultradns =
     {
@@ -1004,17 +1052,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vault";
-      rev     = "v2.9.0";
-      version = "2.9.0";
-      sha256  = "0a1jkwxz45qcbnd91im0xz948k197zal78n6y45bwcbqnil32yiy";
+      rev     = "v2.10.0";
+      version = "2.10.0";
+      sha256  = "1yg8ck9z5ycw8akfhnv4pnxyfzav9dzbhizv4dp78xi2gnddrawi";
     };
   vcd =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vcd";
-      rev     = "v2.7.0";
-      version = "2.7.0";
-      sha256  = "0bh8hqxpy6722q1v9cnpvn8fqwh5llzz1aavrbsib5brgjc8vqmy";
+      rev     = "v2.8.0";
+      version = "2.8.0";
+      sha256  = "0myj5a9mrh7vg6h3gk5f0wsdp6832nz0z10h184107sdchpv253n";
     };
   venafi =
     {
@@ -1028,17 +1076,17 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vra7";
-      rev     = "v0.5.0";
-      version = "0.5.0";
-      sha256  = "123yskwgzp771nx03sg49vwi5ph3zf2ajf06s7msj0blvz6wan4v";
+      rev     = "v1.0.1";
+      version = "1.0.1";
+      sha256  = "0qmldgxmrv840c5rbmskdf4f9g4v52gg9v7magm6j2w2g0dp1022";
     };
   vsphere =
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vsphere";
-      rev     = "v1.17.0";
-      version = "1.17.0";
-      sha256  = "16fglpfy8grlifaa1d1ymvjys7wh39m6py8h45g1xgs1jyfkz00s";
+      rev     = "v1.17.3";
+      version = "1.17.3";
+      sha256  = "109rg8w6szdqq2hb9jg4j3i79z5ppb6vayikl1cg8m8dsv2whhrj";
     };
   vthunder =
     {
@@ -1052,9 +1100,9 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-vultr";
-      rev     = "v1.1.4";
-      version = "1.1.4";
-      sha256  = "14anp7b759yyh78ickas52amads2lmwg85h8i0ikln7qhrhl42d7";
+      rev     = "v1.1.5";
+      version = "1.1.5";
+      sha256  = "06sxcqklqqsninqach05fzilh6k2h9bv66mgfhf9s53ggs5nm8z7";
     };
   wavefront =
     {
@@ -1068,8 +1116,8 @@
     {
       owner   = "terraform-providers";
       repo    = "terraform-provider-yandex";
-      rev     = "v0.35.0";
-      version = "0.35.0";
-      sha256  = "10zj5s0zdgh54rlczyvkq292v9xj1ivvn2k9ml65l6j3h0axlgxv";
+      rev     = "v0.38.0";
+      version = "0.38.0";
+      sha256  = "16s9ffbdgws5hglfr6f48ipjv2sbkdpkg20m9s1m6v2f055nxwak";
     };
 }
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index c3c44160c1b7..82ce5a706796 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -50,9 +50,10 @@ let
 
   # These are the providers that don't fall in line with the default model
   special-providers = {
-    # Override the google providers
+    # Override providers that use Go modules + vendor/ folder
     google = patchGoModVendor automated-providers.google;
     google-beta = patchGoModVendor automated-providers.google-beta;
+    ibm = patchGoModVendor automated-providers.ibm;
 
     # providers that were moved to the `hashicorp` organization,
     # but haven't updated their references yet:
@@ -129,12 +130,13 @@ let
       '';
     });
 
-    elasticsearch = callPackage ./elasticsearch {};
+    # Packages that don't fit the default model
+    ansible = callPackage ./ansible {};
     gandi = callPackage ./gandi {};
-    ibm = callPackage ./ibm {};
+    elasticsearch = callPackage ./elasticsearch {};
     libvirt = callPackage ./libvirt {};
     lxd = callPackage ./lxd {};
-    ansible = callPackage ./ansible {};
+    vpsadmin = callPackage ./vpsadmin {};
   };
 in
   automated-providers // special-providers
diff --git a/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix b/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
deleted file mode 100644
index bd667dbc15f6..000000000000
--- a/pkgs/applications/networking/cluster/terraform-providers/ibm/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
-
-#
-# USAGE:
-# install the following package globally or in nix-shell:
-#
-#   (terraform.withPlugins ( plugins: [ terraform-provider-ibm ]))
-#
-# examples:
-# https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples
-#
-
-buildGoPackage rec {
-  pname = "terraform-provider-ibm";
-  version = "0.11.1";
-
-  goPackagePath = "github.com/terraform-providers/terraform-provider-ibm";
-  subPackages = [ "./" ];
-
-  src = fetchFromGitHub {
-    owner = "IBM-Cloud";
-    repo = "terraform-provider-ibm";
-    sha256 = "1vp1kzadfkacn6c4illxjra8yki1fx7h77b38fixkcvc79mzasmv";
-    rev = "v${version}";
-  };
-
-  # Terraform allow checking the provider versions, but this breaks
-  # if the versions are not provided via file paths.
-  postBuild = "mv go/bin/terraform-provider-ibm{,_v${version}}";
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/IBM-Cloud/terraform-provider-ibm";
-    description = "Terraform provider is used to manage IBM Cloud resources.";
-    platforms = platforms.all;
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ jensbin ];
-  };
-}
diff --git a/pkgs/applications/networking/cluster/terraform-providers/update-all b/pkgs/applications/networking/cluster/terraform-providers/update-all
index 89ed5a94f2ab..70dfc2f825dd 100755
--- a/pkgs/applications/networking/cluster/terraform-providers/update-all
+++ b/pkgs/applications/networking/cluster/terraform-providers/update-all
@@ -112,8 +112,10 @@ cd "$(dirname "$0")"
 
 # individual repos to fetch
 slugs=(
+  IBM-Cloud/terraform-provider-ibm
   ajbosco/terraform-provider-segment
   camptocamp/terraform-provider-pass
+  carlpett/terraform-provider-sops
   poseidon/terraform-provider-matchbox
   spaceapegames/terraform-provider-wavefront
   tweag/terraform-provider-nixos
diff --git a/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
new file mode 100644
index 000000000000..2f788ed915ee
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+  pname = "terraform-provider-vpsadmin";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "vpsfreecz";
+    repo = "terraform-provider-vpsadmin";
+    rev = "v${version}";
+    hash = "sha256-+6jRjcManQdoKh7ewOJI1UaulY5OSbkIUHmtrBI33u4=";
+  };
+
+  modSha256 = "sha256-gz+t50uHFj4BQnJg6kOJI/joJVE+usLpVzTqziek2wY=";
+
+  subPackages = [ "." ];
+
+  # Terraform allow checking the provider versions, but this breaks
+  # if the versions are not provided via file paths.
+  postInstall = "mv $out/bin/${pname}{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    description = "Terraform provider for vpsAdmin";
+    homepage = "https://github.com/vpsfreecz/terraform-provider-vpsadmin";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ zimbatm ];
+  };
+}
diff --git a/pkgs/applications/networking/dyndns/cfdyndns/default.nix b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
index e72f50cd29ba..60a7e5b2fb21 100644
--- a/pkgs/applications/networking/dyndns/cfdyndns/default.nix
+++ b/pkgs/applications/networking/dyndns/cfdyndns/default.nix
@@ -19,7 +19,7 @@ buildRustPackage rec {
 
   installPhase = ''
     mkdir -p $out/bin
-    cp -p target/release/cfdyndns $out/bin/
+    cp -p $releaseDir/cfdyndns $out/bin/
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/hydroxide/default.nix b/pkgs/applications/networking/hydroxide/default.nix
index 75c1cdaece96..679b3f4014fa 100644
--- a/pkgs/applications/networking/hydroxide/default.nix
+++ b/pkgs/applications/networking/hydroxide/default.nix
@@ -2,24 +2,16 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.11";
+  version = "0.2.14";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rn35iyli80kgj3yn93lrx0ybgc8fhvmkvx1d18ill7r4cmavand";
+    sha256 = "0d8wjyzmw89yhrszz487f7i19rcz7xlx4w2wd4c69k5nsdrs6dys";
   };
 
-  modSha256 = "0b19rcif8yiyvhrsjd3q5nsvr580lklamlphx4dk47n456ckcqfp";
-
-  # FIXME: remove with next release
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/emersion/hydroxide/commit/80e0fa6f3e0154338fb0af8a82ca32ae6281dd15.patch";
-      sha256 = "1xi0clzgz14a7sxnwr0li7sz9p05sfh3zh5iqg2qz5f415k9jknj";
-    })
-  ];
+  modSha256 = "0888ikywclhjb4n7xqxc7hvzlhx1qhf4c3skaddqs3nrxm171jwn";
 
   subPackages = [ "cmd/hydroxide" ];
 
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 5eda7971748f..0cc8cd848c53 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.58.0.93";
+  version = "8.59.0.77";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -62,9 +62,10 @@ let
       fetchurl {
         urls = [
           "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
+          "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "1nqadil50z896jg0r202gw3xmm3diawn0pnh6n6nxn900f02avl3";
+        sha256 = "1cnlwlp84942ywji3x60zvhijavazdxfym3rfzq3ysky28b6mn6i";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 84f334be06fb..360d8b4e1c9d 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "5.0.398100.0427";
+  version = "5.0.399860.0429";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "0b9jdicr783wagp2j79106bbk68974j3v8zg8nvky5fydl6ngjvi";
+      sha256 = "1jid8rs403b709scz8vpqsi1dxdmssn5426wa3d16p45blnxk16k";
     };
   };
 
diff --git a/pkgs/applications/networking/nym/default.nix b/pkgs/applications/networking/nym/default.nix
new file mode 100644
index 000000000000..6bb86c016ba3
--- /dev/null
+++ b/pkgs/applications/networking/nym/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkgconfig
+, openssl
+, libredirect
+, writeText
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nym";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "nymtech";
+    repo = "nym";
+    rev = "v${version}";
+    sha256 = "1q9i24mzys6a9kp9n0bnxr3iwzblabmc6iif3ah75gffyf0cipk4";
+  };
+
+  cargoSha256 = "0qas544bs4wyllvqf2r5mvqxs1nviwcvxa3rzq10dvjyjm1xyh3k";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ openssl ];
+
+  /*
+  Nym's test presence::converting_mixnode_presence_into_topology_mixnode::it_returns_resolved_ip_on_resolvable_hostname tries to resolve nymtech.net.
+  Since there is no external DNS resolution available in the build sandbox, we point cargo and its children (that's what we remove the 'unsetenv' call for) to a hosts file in which we statically resolve nymtech.net.
+  */
+  preCheck = ''
+    export LD_PRELOAD=${libredirect.overrideAttrs (drv: {
+      postPatch = "sed -i -e /unsetenv/d libredirect.c";
+    })}/lib/libredirect.so
+    export NIX_REDIRECTS=/etc/hosts=${writeText "nym_resolve_test_hosts" "127.0.0.1 nymtech.net"}
+  '';
+
+  postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
+
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    description = "A mixnet providing IP-level privacy";
+    longDescription = ''
+      Nym routes IP packets through other participating nodes to hide their source and destination.
+      In contrast with Tor, it prevents timing attacks at the cost of latency.
+    '';
+    homepage = "https://nymtech.net";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ehmry ];
+    platforms = with platforms; intersectLists (linux ++ darwin) (x86 ++ x86_64); # see https://github.com/nymtech/nym/issues/179 for architectures
+  };
+}
diff --git a/pkgs/applications/networking/nym/update.sh b/pkgs/applications/networking/nym/update.sh
new file mode 100755
index 000000000000..0c65521c7f80
--- /dev/null
+++ b/pkgs/applications/networking/nym/update.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq nix-prefetch
+
+# adapted from rust-analyzer
+
+set -euo pipefail
+cd "$(dirname "$0")"
+nixpkgs=../../../..
+
+owner=$(sed -nE 's/.*\bowner = "(.*)".*/\1/p' ./default.nix)
+repo=$(sed -nE 's/.*\brepo = "(.*)".*/\1/p' ./default.nix)
+rev=$(
+    curl -s "https://api.github.com/repos/$owner/$repo/releases" |
+    jq 'map(select(.prerelease | not)) | .[0].tag_name' --raw-output
+)
+version=${rev:1}
+old_version=$(sed -nE 's/.*\bversion = "(.*)".*/\1/p' ./default.nix)
+if grep -q 'cargoSha256 = ""' ./default.nix; then
+    old_version='broken'
+fi
+if [[ "$version" == "$old_version" ]]; then
+    echo "Up to date: $version"
+    exit
+fi
+echo "$old_version -> $version"
+
+sha256=$(nix-prefetch -f "$nixpkgs" nym.src --rev "$rev")
+# Clear cargoSha256 to avoid inconsistency.
+sed -e "s/version = \".*\"/version = \"$version\"/" \
+    -e "s/sha256 = \".*\"/sha256 = \"$sha256\"/" \
+    -e "s/cargoSha256 = \".*\"/cargoSha256 = \"\"/" \
+    --in-place ./default.nix
+
+echo "Prebuilding for cargoSha256"
+cargo_sha256=$(nix-prefetch "{ sha256 }: (import $nixpkgs {}).nym.cargoDeps.overrideAttrs (_: { outputHash = sha256; })")
+sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
+    --in-place ./default.nix
diff --git a/pkgs/applications/office/jameica/default.nix b/pkgs/applications/office/jameica/default.nix
index be630920268a..6dc124c6a200 100644
--- a/pkgs/applications/office/jameica/default.nix
+++ b/pkgs/applications/office/jameica/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, makeDesktopItem, makeWrapper, ant, jdk, jre, gtk2, glib, xorg, Cocoa }:
 
 let
-  _version = "2.8.4";
-  _build = "453";
+  _version = "2.8.6";
+  _build = "455";
   version = "${_version}-${_build}";
   name = "jameica-${version}";
 
@@ -17,7 +17,7 @@ let
     comment = "Free Runtime Environment for Java Applications.";
     desktopName = "Jameica";
     genericName = "Jameica";
-    categories = "Application;Office;";
+    categories = "Office;";
   };
 in
 stdenv.mkDerivation rec {
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "willuhn";
     repo = "jameica";
     rev = "V_${builtins.replaceStrings ["."] ["_"] _version}_BUILD_${_build}";
-    sha256 = "1imm3wpdrgh2sr2wh9vgaf2mp1ixs845vgzk5ib82mak7lg9m1zl";
+    sha256 = "1pndklxsvixy6zyblqr62ki3pqaq8lfrzgasrvhclqxxh76gjlss";
   };
 
   # there is also a build.gradle, but it only seems to be used to vendor 3rd party libraries
diff --git a/pkgs/applications/science/physics/sherpa/default.nix b/pkgs/applications/science/physics/sherpa/default.nix
index 85b2ddd4d07a..314fc5225004 100644
--- a/pkgs/applications/science/physics/sherpa/default.nix
+++ b/pkgs/applications/science/physics/sherpa/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sherpa";
-  version = "2.2.8";
+  version = "2.2.9";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/sherpa/SHERPA-MC-${version}.tar.gz";
-    sha256 = "1al1imdrknvbcy8k113xysc14lln4msbv281bf0kx7p73wz59mv3";
+    sha256 = "1z7vws97k6zfzyqx0dkv2kq8d83dibi73i5jiqk5a22yplp6bnjh";
   };
 
   buildInputs = [ gfortran sqlite lhapdf rivet ];
@@ -21,13 +21,11 @@ stdenv.mkDerivation rec {
     "--enable-rivet=${rivet}"
   ];
 
-  CXXFLAGS = "-std=c++11"; # needed for rivet on OSX
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "Simulation of High-Energy Reactions of PArticles in lepton-lepton, lepton-photon, photon-photon, lepton-hadron and hadron-hadron collisions";
-    license     = stdenv.lib.licenses.gpl2;
-    homepage    = "https://gitlab.com/sherpa-team/sherpa";
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+    license = licenses.gpl2;
+    homepage = "https://gitlab.com/sherpa-team/sherpa";
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
index 5c3b27ad614c..93d152baa003 100644
--- a/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, darwin }:
+{ stdenv, fetchFromGitHub, installShellFiles, rustPlatform, pkgconfig, openssl, darwin }:
 
 with rustPlatform;
 
@@ -15,7 +15,7 @@ buildRustPackage rec {
 
   cargoSha256 = "0vcg2pl0s329fr8p23pwdx2jy7qahbr7n337ib61f69aaxi1xmq0";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig installShellFiles ];
   buildInputs = [ openssl ]
   ++ stdenv.lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.Security
@@ -23,8 +23,7 @@ buildRustPackage rec {
 
   outputs = [ "out" "man" ];
   preFixup = ''
-    mkdir -p "$man/man/man1"
-    cp target/release/build/git-ignore-*/out/git-ignore.1 "$man/man/man1/"
+    installManPage $releaseDir/build/git-ignore-*/out/git-ignore.1
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch b/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch
index 043c1efade8a..9ae8d6b5e756 100644
--- a/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch
+++ b/pkgs/applications/virtualization/nvidia-docker/libnvc-ldconfig-and-path-fixes.patch
@@ -71,10 +71,10 @@ index 33d78dd..2b087db 100644
  
  #endif /* HEADER_LDCACHE_H */
 diff --git a/src/nvc_info.c b/src/nvc_info.c
-index cc96542..3fe7612 100644
+index 30e3cfd..6d12a50 100644
 --- a/src/nvc_info.c
 +++ b/src/nvc_info.c
-@@ -163,15 +163,13 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
+@@ -167,15 +167,13 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
          if (path_resolve_full(err, path, root, ldcache) < 0)
                  return (-1);
          ldcache_init(&ld, err, path);
@@ -91,7 +91,7 @@ index cc96542..3fe7612 100644
                  goto fail;
  
          info->nlibs32 = size;
-@@ -179,13 +177,11 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
+@@ -183,13 +181,11 @@ find_library_paths(struct error *err, struct nvc_driver_info *info, const char *
          if (info->libs32 == NULL)
                  goto fail;
          if (ldcache_resolve(&ld, LIB32_ARCH, root, libs,
@@ -106,7 +106,7 @@ index cc96542..3fe7612 100644
          return (rv);
  }
  
-@@ -199,7 +195,7 @@ find_binary_paths(struct error *err, struct nvc_driver_info *info, const char *r
+@@ -203,7 +199,7 @@ find_binary_paths(struct error *err, struct nvc_driver_info *info, const char *r
          char path[PATH_MAX];
          int rv = -1;
  
@@ -116,10 +116,10 @@ index cc96542..3fe7612 100644
                  return (-1);
          }
 diff --git a/src/nvc_ldcache.c b/src/nvc_ldcache.c
-index d41a24d..65b7878 100644
+index 6ff380f..cbe6a69 100644
 --- a/src/nvc_ldcache.c
 +++ b/src/nvc_ldcache.c
-@@ -331,7 +331,7 @@ nvc_ldcache_update(struct nvc_context *ctx, const struct nvc_container *cnt)
+@@ -340,7 +340,7 @@ nvc_ldcache_update(struct nvc_context *ctx, const struct nvc_container *cnt)
          if (validate_args(ctx, cnt != NULL) < 0)
                  return (-1);
  
diff --git a/pkgs/applications/virtualization/nvidia-docker/libnvc.nix b/pkgs/applications/virtualization/nvidia-docker/libnvc.nix
index f2c9eda75fc5..5b97d7fffa29 100644
--- a/pkgs/applications/virtualization/nvidia-docker/libnvc.nix
+++ b/pkgs/applications/virtualization/nvidia-docker/libnvc.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, libelf, libcap, libseccomp }:
+{ stdenv, lib, fetchFromGitHub, pkgconfig, libelf, libcap, libseccomp }:
 
 with lib; let
 
@@ -13,13 +13,13 @@ with lib; let
 
 in stdenv.mkDerivation rec {
   pname = "libnvidia-container";
-  version = "1.0.0";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "libnvidia-container";
     rev = "v${version}";
-    sha256 = "1ws6mfsbgxhzlb5w1r8qqg2arvxkr21n59i4cqsyz3h5jsqsflbw";
+    sha256 = "1pnpc9knwh8d1zqb28zc3spkjc00w0z10vd3jna8ksvpl35jl7w3";
   };
 
   # locations of nvidia-driver libraries are not resolved via ldconfig which
@@ -42,6 +42,8 @@ in stdenv.mkDerivation rec {
     touch deps/src/nvidia-modprobe-${modp-ver}/.download_stamp
   '';
 
+  nativeBuildInputs = [ pkgconfig ];
+
   buildInputs = [ libelf libcap libseccomp ];
 
   meta = {
diff --git a/pkgs/applications/virtualization/podman/wrapper.nix b/pkgs/applications/virtualization/podman/wrapper.nix
new file mode 100644
index 000000000000..0b905c0c709e
--- /dev/null
+++ b/pkgs/applications/virtualization/podman/wrapper.nix
@@ -0,0 +1,48 @@
+{ podman-unwrapped
+, runCommand
+, makeWrapper
+, lib
+, extraPackages ? []
+, podman # Docker compat
+, runc # Default container runtime
+, crun # Default container runtime (cgroups v2)
+, conmon # Container runtime monitor
+, slirp4netns # User-mode networking for unprivileged namespaces
+, fuse-overlayfs # CoW for images, much faster than default vfs
+, utillinux # nsenter
+, cni-plugins
+, iptables
+}:
+
+let
+  podman = podman-unwrapped;
+
+  binPath = lib.makeBinPath ([
+    runc
+    crun
+    conmon
+    slirp4netns
+    fuse-overlayfs
+    utillinux
+    iptables
+  ] ++ extraPackages);
+
+in runCommand podman.name {
+  inherit (podman) name pname version meta outputs;
+  nativeBuildInputs = [
+    makeWrapper
+  ];
+
+} ''
+  # Symlink everything but $bin from podman-unwrapped
+  ${
+    lib.concatMapStringsSep "\n"
+    (o: "ln -s ${podman.${o}} ${placeholder o}")
+    (builtins.filter (o: o != "bin")
+    podman.outputs)}
+
+  mkdir -p $bin/bin
+  ln -s ${podman-unwrapped}/share $bin/share
+  makeWrapper ${podman-unwrapped}/bin/podman $bin/bin/podman \
+    --prefix PATH : ${binPath}
+''
diff --git a/pkgs/applications/window-managers/spectrwm/default.nix b/pkgs/applications/window-managers/spectrwm/default.nix
index 1eb19e2de6f9..b38cb9906178 100644
--- a/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/pkgs/applications/window-managers/spectrwm/default.nix
@@ -1,51 +1,37 @@
-{ fetchurl
-, libX11
-, libXrandr
-, libXcursor
-, libXft
-, libXt
-, libxcb
-, xcbutil
-, xcb-util-cursor
-, xcbutilkeysyms
-, xcbutilwm
-, stdenv
-}:
+{ stdenv, fetchFromGitHub, pkgconfig, xorg }:
 
 stdenv.mkDerivation {
   pname = "spectrwm";
-  version = "2.7.2";
+  version = "3.3.0";
 
-  src = fetchurl {
-    url = "https://github.com/conformal/spectrwm/archive/SPECTRWM_2_7_2.tar.gz";
-    sha256 = "1yssqnhxlfl1b60gziqp8c5pzs1lr8p6anrnp9ga1zfdql3b7993";
+  src = fetchFromGitHub {
+    owner = "conformal";
+    repo = "spectrwm";
+    rev = "SPECTRWM_3_3_0";
+    sha256 = "139mswlr0z5dbp5migm98qqg84syq0py1qladp3226xy6q3bnn08";
   };
 
-
-  buildInputs = [
-    libX11
-    libxcb
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = with xorg; [
     libXrandr
     libXcursor
     libXft
     libXt
     xcbutil
-    xcb-util-cursor
     xcbutilkeysyms
     xcbutilwm
   ];
 
   sourceRoot = let
     subdir = if stdenv.isDarwin then "osx" else "linux";
-  in "spectrwm-SPECTRWM_2_7_2/${subdir}";
+  in "source/${subdir}";
 
-  makeFlags = [ "PREFIX=$(out)" ];
-  installPhase = "PREFIX=$out make install";
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description = "A tiling window manager";
     homepage    = "https://github.com/conformal/spectrwm";
-    maintainers = with maintainers; [ jb55 ];
+    maintainers = with maintainers; [ christianharke ];
     license     = licenses.isc;
     platforms   = platforms.all;
 
diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix
index 435bbe89c1c4..b134effab8ac 100644
--- a/pkgs/build-support/ocaml/dune.nix
+++ b/pkgs/build-support/ocaml/dune.nix
@@ -1,6 +1,6 @@
 { stdenv, ocaml, findlib, dune, dune_2, opaline }:
 
-{ pname, version, buildInputs ? [], ... }@args:
+{ pname, version, buildInputs ? [], enableParallelBuilding ? true, ... }@args:
 
 let Dune = if args.useDune2 or false then dune_2 else dune; in
 
@@ -11,14 +11,16 @@ else
 
 stdenv.mkDerivation ({
 
+  inherit enableParallelBuilding;
+
   buildPhase = ''
     runHook preBuild
-    dune build -p ${pname}
+    dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
     runHook postBuild
   '';
   checkPhase = ''
     runHook preCheck
-    dune runtest -p ${pname}
+    dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
     runHook postCheck
   '';
   installPhase = ''
diff --git a/pkgs/data/fonts/jetbrains-mono/default.nix b/pkgs/data/fonts/jetbrains-mono/default.nix
index 4297d15da948..718b6b218df2 100644
--- a/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0.5";
+  version = "1.0.6";
 in
 fetchzip rec {
   name = "JetBrainsMono-${version}";
 
   url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "1iqqix7rr22ij0cn7vg812qs4gbjpphndgbzm57abqk658lra4kl";
+  sha256 = "1198k5zw91g85h6n7rg3y7wcj1nrbby9zlr6zwlmiq0nb37n0d3g";
 
   postFetch = ''
     mkdir -p $out/share/fonts
diff --git a/pkgs/data/themes/pop-gtk/default.nix b/pkgs/data/themes/pop-gtk/default.nix
index 9bb2beae4d31..730f7754d8f5 100644
--- a/pkgs/data/themes/pop-gtk/default.nix
+++ b/pkgs/data/themes/pop-gtk/default.nix
@@ -9,17 +9,18 @@
 , gtk-engine-murrine
 , gdk-pixbuf
 , librsvg
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "pop-gtk-theme";
-  version = "2020-02-10";
+  version = "2020-04-22";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "gtk-theme";
-    rev = "ed888e9dd5de142cb899e362beedaf694594cc7e";
-    sha256 = "0ryr1jx9pzij6pkv7sam07f90w5lbrzx0fj5vdxl94612mh76aad";
+    rev = "b3f98dfd61cfff81f69cdc7f57bce7a9efaa36f4";
+    sha256 = "0vhcc694x33sgcpbqkrc5bycbd7017k4iii0mjjxgd22jd5lzgkb";
   };
 
   nativeBuildInputs = [
@@ -29,6 +30,7 @@ stdenv.mkDerivation rec {
     gtk3
     inkscape
     optipng
+    python3
   ];
 
   buildInputs = [
@@ -41,9 +43,9 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    for file in $(find -name render-\*.sh); do
-      patchShebangs "$file"
+    patchShebangs .
 
+    for file in $(find -name render-\*.sh); do
       substituteInPlace "$file" \
         --replace 'INKSCAPE="/usr/bin/inkscape"' \
                   'INKSCAPE="inkscape"' \
diff --git a/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix b/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
new file mode 100644
index 000000000000..3ddd5c102835
--- /dev/null
+++ b/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-extension-window-is-ready-remover";
+  version = "unstable-2020-03-25";
+
+  src = fetchFromGitHub {
+    owner = "nunofarruca";
+    repo = "WindowIsReady_Remover";
+    rev = "a9f9b3a060a6ba8eec71332f39dc2569b6e93761";
+    sha256 = "0l6cg9kz2plbvsqhgwfajknzw9yv3mg9gxdbsk147gbh2arnp6v3";
+  };
+
+  uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
+
+  installPhase = ''
+    mkdir -p $out/share/gnome-shell/extensions/
+    cp -r ${uuid} $out/share/gnome-shell/extensions/${uuid}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GNOME Shell extension removing window is ready notification";
+    homepage = "https://github.com/nunofarruca/WindowIsReady_Remover";
+    license = licenses.unfree;
+  };
+}
diff --git a/pkgs/development/compilers/dmd/binary.nix b/pkgs/development/compilers/dmd/binary.nix
new file mode 100644
index 000000000000..cd3a15889b21
--- /dev/null
+++ b/pkgs/development/compilers/dmd/binary.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, glibc
+, version, hashes }:
+with stdenv;
+let
+  OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
+  MODEL = toString hostPlatform.parsed.cpu.bits;
+in mkDerivation {
+  pname = "dmd-bootstrap";
+  inherit version;
+
+  src = fetchurl rec {
+    name = "dmd.${version}.${OS}.tar.xz";
+    url = "http://downloads.dlang.org/releases/2.x/${version}/${name}";
+    sha256 = hashes.${OS} or (throw "missing bootstrap sha256 for OS ${OS}");
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ];
+  propagatedBuildInputs = [ curl tzdata ] ++ lib.optional hostPlatform.isLinux glibc;
+
+  installPhase = ''
+    mkdir -p $out
+
+    # try to copy model-specific binaries into bin first
+    mv ${OS}/bin${MODEL} $out/bin || true
+
+    mv src license.txt ${OS}/* $out/
+
+    # move man into place
+    mkdir -p $out/share
+    mv man $out/share/
+
+    # move docs into place
+    mkdir -p $out/share/doc
+    mv html/d $out/share/doc/
+
+    # fix paths in dmd.conf (one level less)
+    substituteInPlace $out/bin/dmd.conf --replace "/../../" "/../"
+  '';
+
+  meta = with lib; {
+    inherit version;
+    description = "Digital Mars D Compiler Package";
+    # As of 2.075 all sources and binaries use the boost license
+    license = licenses.boost;
+    maintainers = [ maintainers.lionello ];
+    homepage = "https://dlang.org/";
+    platforms = [ "x86_64-darwin" "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/dmd/bootstrap.nix b/pkgs/development/compilers/dmd/bootstrap.nix
new file mode 100644
index 000000000000..087781ae2ca4
--- /dev/null
+++ b/pkgs/development/compilers/dmd/bootstrap.nix
@@ -0,0 +1,9 @@
+{ callPackage }:
+callPackage ./binary.nix {
+  version = "2.090.1";
+  hashes = {
+    # Get these from `nix-prefetch-url http://downloads.dlang.org/releases/2.x/2.090.1/dmd.2.090.1.linux.tar.xz` etc..
+    osx = "0rbn7j4dr3q0y09fblpj999bi063pi4230rqd5xgd3gwxxa0cz7l";
+    linux = "1vk6lsvd6y7ccvffd23yial4ig90azaxf2rxc6yvidqd1qhan807";
+  };
+}
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 9281e01ad3e2..a6d4f7e1e20a 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -1,11 +1,13 @@
 { stdenv, lib, fetchFromGitHub
 , makeWrapper, unzip, which, writeTextFile
-, curl, tzdata, gdb, darwin, git
-, targetPackages, ldc
-, version ? "2.085.1"
-, dmdSha256 ? "0ccidfcawrcwdpfjwjiln5xwr4ffp8i2hwx52p8zn3xmc5yxm660"
-, druntimeSha256 ? "109f2glsqrlshk06761xlw4r5v22mivp873cq9g5gcax3g00k617"
-, phobosSha256 ? "0giispqqx8j8xg6c0hm7nx77bcahiwic8rvf12sws3sv5pizv8pr"
+, curl, tzdata, gdb, darwin, git, callPackage
+, targetPackages, fetchpatch, bash
+, dmdBootstrap ? callPackage ./bootstrap.nix { }
+, HOST_DMD ? "${dmdBootstrap}/bin/dmd"
+, version ? "2.091.1"
+, dmdSha256 ? "0brz0n84jdkhr4sq4k91w48p739psbhbb1jk2pi9q60psmx353yr"
+, druntimeSha256 ? "0smgpmfriffh110ksski1s5j921kmxbc2zjy0dyj9ksyrxbzklbl"
+, phobosSha256 ? "1n00anajgibrfs1xzvrmag28hvbvkc0w1fwlimqbznvhf28rhrxs"
 }:
 
 let
@@ -51,7 +53,17 @@ stdenv.mkDerivation rec {
   })
   ];
 
-  patchFlags = [ "--directory=dmd" "-p1" ];
+  patchFlags = [ "--directory=dmd" "-p1" "-F3" ];
+  patches = [
+    (fetchpatch {
+     url = "https://github.com/dlang/dmd/commit/4157298cf04f7aae9f701432afd1de7b7e05c30f.patch";
+     sha256 = "0v4xgqmrx5r8vbx5a4v88s0xnm23mam9nm99yfga7s2sxr0hi5p2";
+    })
+    (fetchpatch {
+     url = "https://github.com/dlang/dmd/commit/1b8a4c90b040bf2f0b68a2739de4991315580b13.patch";
+     sha256 = "1iih6aalv4fsw9mbrlrybhngkkchzzrzg7q8zl047w36c0x397cs";
+    })
+  ];
 
   sourceRoot = ".";
 
@@ -62,15 +74,17 @@ stdenv.mkDerivation rec {
       patchShebangs .
   '';
 
-  postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
+  postPatch = ''
+      substituteInPlace dmd/test/dshell/test6952.d --replace "/usr/bin/env bash" "${bash}/bin/bash"
+  ''
+  + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
       substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
   ''
-
   + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
       substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
   '';
 
-  nativeBuildInputs = [ ldc makeWrapper unzip which gdb git ]
+  nativeBuildInputs = [ makeWrapper unzip which gdb git ]
 
   ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
     Foundation
@@ -89,7 +103,7 @@ stdenv.mkDerivation rec {
   # Buid and install are based on http://wiki.dlang.org/Building_DMD
   buildPhase = ''
       cd dmd
-      make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=ldmd2
+      make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=${HOST_DMD}
       cd ../druntime
       make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
       cd ../phobos
@@ -147,8 +161,7 @@ stdenv.mkDerivation rec {
     # Everything is now Boost licensed, even the backend.
     # https://github.com/dlang/dmd/pull/6680
     license = licenses.boost;
-    maintainers = with maintainers; [ ThomasMader ];
+    maintainers = with maintainers; [ ThomasMader lionello ];
     platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
   };
 }
-
diff --git a/pkgs/development/compilers/fstar/default.nix b/pkgs/development/compilers/fstar/default.nix
index b8864584ee6a..548abeff78d0 100644
--- a/pkgs/development/compilers/fstar/default.nix
+++ b/pkgs/development/compilers/fstar/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper }:
+{ stdenv, fetchFromGitHub, z3, ocamlPackages, makeWrapper, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "fstar";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "0wix7l229afkn6c6sk4nwkfq0nznsiqdkds4ixi2yyf72immwmmb";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   buildInputs = with ocamlPackages; [
     z3 ocaml findlib batteries menhir stdint
@@ -33,6 +33,9 @@ stdenv.mkDerivation rec {
   installFlags = [ "-C" "src/ocaml-output" ];
   postInstall = ''
     wrapProgram $out/bin/fstar.exe --prefix PATH ":" "${z3}/bin"
+    installShellCompletion --bash .completion/bash/fstar.exe.bash
+    installShellCompletion --fish .completion/fish/fstar.exe.fish
+    installShellCompletion --zsh --name _fstar.exe .completion/zsh/__fstar.exe
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/compilers/ldc/binary.nix b/pkgs/development/compilers/ldc/binary.nix
new file mode 100644
index 000000000000..56d40be86194
--- /dev/null
+++ b/pkgs/development/compilers/ldc/binary.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, curl, tzdata, autoPatchelfHook, fixDarwinDylibNames, libxml2
+, version, hashes }:
+with stdenv;
+let
+  OS = if hostPlatform.isDarwin then "osx" else hostPlatform.parsed.kernel.name;
+  ARCH = toString hostPlatform.parsed.cpu.name;
+in mkDerivation {
+  pname = "ldc-bootstrap";
+  inherit version;
+
+  src = fetchurl rec {
+    name = "ldc2-${version}-${OS}-${ARCH}.tar.xz";
+    url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/${name}";
+    sha256 = hashes."${OS}-${ARCH}" or (throw "missing bootstrap sha256 for ${OS}-${ARCH}");
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [ fixDarwinDylibNames autoPatchelfHook ];
+
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ libxml2 stdenv.cc.cc ];
+
+  propagatedBuildInputs = [ curl tzdata ];
+
+  installPhase = ''
+    mkdir -p $out
+
+    mv bin etc import lib LICENSE README $out/
+  '';
+
+  meta = with lib; {
+    inherit version;
+    description = "The LLVM-based D Compiler";
+    homepage = "https://github.com/ldc-developers/ldc";
+    # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
+    license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
+    maintainers = with maintainers; [ ThomasMader lionello ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+  };
+}
diff --git a/pkgs/development/compilers/ldc/bootstrap.nix b/pkgs/development/compilers/ldc/bootstrap.nix
new file mode 100644
index 000000000000..fde4c8426848
--- /dev/null
+++ b/pkgs/development/compilers/ldc/bootstrap.nix
@@ -0,0 +1,10 @@
+{ callPackage }:
+callPackage ./binary.nix {
+  version = "1.19.0";
+  hashes = {
+    # Get these from `nix-prefetch-url https://github.com/ldc-developers/ldc/releases/download/v1.19.0/ldc2-1.19.0-osx-x86_64.tar.xz` etc..
+    osx-x86_64 = "1bp3xkh9zp64dzq8isanib1gacb3nfbl70qv15qygwk1zan6zgy7";
+    linux-x86_64 = "146grr2lwarfk13wgkpyb77xb6b3as1is2rf4s2hipqjmc8biy1h";
+    linux-aarch64  = "1fv6jshfvi15m7masgxq1hgp216qjd5amizrqdf26vhrq3a08li3";
+  };
+}
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index 19fe2981c833..5a4baabcf8d8 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -1,173 +1,5 @@
-{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata
-, libconfig, lit, gdb, unzip, darwin, bash
-, callPackage, makeWrapper, runCommand, targetPackages
-, bootstrapVersion ? false
-, version ? "1.17.0"
-, ldcSha256 ? "1aag5jfrng6p4ms0fs90hjbv9bcj3hj8h52r68c3cm6racdajbva"
-}:
-
-let
-  bootstrapLdc = if !bootstrapVersion then
-    # LDC 0.17.x is the last version which doesn't need a working D compiler to
-    # build so we use that version to bootstrap the actual build.
-    callPackage ./default.nix {
-      bootstrapVersion = true;
-      version = "0.17.6";
-      ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6";
-    }
-  else
-    "";
-
-  pathConfig = runCommand "ldc-lib-paths" {} ''
-    mkdir $out
-    echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
-    echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
-  '';
-in
-
-stdenv.mkDerivation rec {
-  pname = "ldc";
-  inherit version;
-
-  enableParallelBuilding = true;
-
-  src = fetchurl {
-    url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
-    sha256 = ldcSha256;
-  };
-
-  # https://issues.dlang.org/show_bug.cgi?id=19553
-  hardeningDisable = [ "fortify" ];
-
-  postUnpack = ''
-    patchShebangs .
-  ''
-
-  + stdenv.lib.optionalString (!bootstrapVersion) ''
-      rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
-      rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d
-      rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d
-
-      # test depends on current year
-      rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d
-  ''
-
-  + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
-      # https://github.com/NixOS/nixpkgs/issues/34817
-      rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
-  '';
-
-  postPatch = ''
-      # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
-      substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
-    ''
-
-  + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isLinux) ''
-      substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
-  ''
-
-  + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
-      substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
-  ''
-
-  + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
-      # Was not able to compile on darwin due to "__inline_isnanl"
-      # being undefined.
-      # TODO Remove with version > 0.17.6
-      substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan
-  '';
-
-  nativeBuildInputs = [ cmake ninja makeWrapper unzip ]
-    ++ stdenv.lib.optionals (!bootstrapVersion) [
-      bootstrapLdc lit lit.python
-    ]
-    ++ stdenv.lib.optional (!bootstrapVersion && stdenv.hostPlatform.isDarwin)
-      # https://github.com/NixOS/nixpkgs/issues/57120
-      # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515
-      llvm_5
-    ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin)
-      llvm_8
-    ++ stdenv.lib.optional (!bootstrapVersion && !stdenv.hostPlatform.isDarwin)
-      # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
-      gdb
-    ++ stdenv.lib.optionals (bootstrapVersion) [
-      libconfig llvm_5
-    ]
-    ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin
-      darwin.apple_sdk.frameworks.Foundation;
-
-
-  buildInputs = [ curl tzdata ];
-
-  cmakeFlags = stdenv.lib.optionals (!bootstrapVersion) [
-    "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}"
-    "-DCMAKE_BUILD_TYPE=Release"
-  ];
-
-  postConfigure = ''
-    export DMD=$PWD/bin/ldmd2
-  '';
-
-  makeFlags = [ "DMD=$DMD" ];
-
-  fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin  ''
-    fixDarwinDylibNames() {
-      local flags=()
-
-      for fn in "$@"; do
-        flags+=(-change "$(basename "$fn")" "$fn")
-      done
-
-      for fn in "$@"; do
-        if [ -L "$fn" ]; then continue; fi
-        echo "$fn: fixing dylib"
-        install_name_tool -id "$fn" "''${flags[@]}" "$fn"
-      done
-    }
-
-    fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib")
-    export DYLD_LIBRARY_PATH=$(pwd)/lib
-  '';
-
-  # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
-  additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin
-    "|druntime-test-shared";
-
-  doCheck = !bootstrapVersion;
-
-  checkPhase = stdenv.lib.optionalString doCheck ''
-    # Build default lib test runners
-    ninja -j$NIX_BUILD_CORES all-test-runners
-
-    ${fixNames}
-
-    # Run dmd testsuite
-    export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD CC=$CXX"
-    ctest -V -R "dmd-testsuite"
-
-    # Build and run LDC D unittests.
-    ctest --output-on-failure -R "ldc2-unittest"
-
-    # Run LIT testsuite.
-    ctest -V -R "lit-tests"
-
-    # Run default lib unittests
-    ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}"
-  '';
-
-  postInstall = ''
-    wrapProgram $out/bin/ldc2 \
-        --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
-        --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
-   '';
-
-  meta = with stdenv.lib; {
-    description = "The LLVM-based D compiler";
-    homepage = "https://github.com/ldc-developers/ldc";
-    # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
-    license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
-    maintainers = with maintainers; [ ThomasMader ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
-  };
+import ./generic.nix {
+  version = "1.20.1";
+  ldcSha256 = "1bqsgab22v02pc3c9gcyf15y7aimadv24d68icaw5lpgnvzxy89b";
 }
 
diff --git a/pkgs/development/compilers/ldc/generic.nix b/pkgs/development/compilers/ldc/generic.nix
new file mode 100644
index 000000000000..c93d423945cb
--- /dev/null
+++ b/pkgs/development/compilers/ldc/generic.nix
@@ -0,0 +1,143 @@
+{ version, ldcSha256 }:
+{ stdenv, fetchurl, cmake, ninja, llvm_5, llvm_8, curl, tzdata
+, libconfig, lit, gdb, unzip, darwin, bash
+, callPackage, makeWrapper, runCommand, targetPackages
+, ldcBootstrap ? callPackage ./bootstrap.nix { }
+}:
+
+let
+  pathConfig = runCommand "ldc-lib-paths" {} ''
+    mkdir $out
+    echo ${tzdata}/share/zoneinfo/ > $out/TZDatabaseDirFile
+    echo ${curl.out}/lib/libcurl${stdenv.hostPlatform.extensions.sharedLibrary} > $out/LibcurlPathFile
+  '';
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "ldc";
+  inherit version;
+
+  enableParallelBuilding = true;
+
+  src = fetchurl {
+    url = "https://github.com/ldc-developers/ldc/releases/download/v${version}/ldc-${version}-src.tar.gz";
+    sha256 = ldcSha256;
+  };
+
+  # https://issues.dlang.org/show_bug.cgi?id=19553
+  hardeningDisable = [ "fortify" ];
+
+  postUnpack = ''
+    patchShebangs .
+  ''
+  + ''
+      rm ldc-${version}-src/tests/d2/dmd-testsuite/fail_compilation/mixin_gc.d
+      rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/xtest46_gc.d
+      rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/testptrref_gc.d
+
+      # test depends on current year
+      rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ddocYear.d
+  ''
+  + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+      # https://github.com/NixOS/nixpkgs/issues/34817
+      rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
+  '';
+
+  postPatch = ''
+    # Setting SHELL=$SHELL when dmd testsuite is run doesn't work on Linux somehow
+    substituteInPlace tests/d2/dmd-testsuite/Makefile --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
+  ''
+  + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
+      substituteInPlace runtime/phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
+  ''
+  + stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
+      substituteInPlace runtime/phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
+  '';
+
+  nativeBuildInputs = [
+    cmake ninja makeWrapper unzip ldcBootstrap lit lit.python
+  ]
+  ++ stdenv.lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.Foundation
+    # https://github.com/NixOS/nixpkgs/issues/57120
+    # https://github.com/NixOS/nixpkgs/pull/59197#issuecomment-481972515
+    llvm_5
+  ]
+  ++ stdenv.lib.optionals (!stdenv.hostPlatform.isDarwin) [
+    llvm_8
+    # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
+    gdb
+  ];
+
+  buildInputs = [ curl tzdata ];
+
+  cmakeFlags = [
+    "-DD_FLAGS=-d-version=TZDatabaseDir;-d-version=LibcurlPath;-J${pathConfig}"
+    "-DCMAKE_BUILD_TYPE=Release"
+  ];
+
+  postConfigure = ''
+    export DMD=$PWD/bin/ldmd2
+  '';
+
+  makeFlags = [ "DMD=$DMD" ];
+
+  fixNames = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin  ''
+    fixDarwinDylibNames() {
+      local flags=()
+
+      for fn in "$@"; do
+        flags+=(-change "$(basename "$fn")" "$fn")
+      done
+
+      for fn in "$@"; do
+        if [ -L "$fn" ]; then continue; fi
+        echo "$fn: fixing dylib"
+        install_name_tool -id "$fn" "''${flags[@]}" "$fn"
+      done
+    }
+
+    fixDarwinDylibNames $(find "$(pwd)/lib" -name "*.dylib")
+    export DYLD_LIBRARY_PATH=$(pwd)/lib
+  '';
+
+  # https://github.com/ldc-developers/ldc/issues/2497#issuecomment-459633746
+  additionalExceptions = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin
+    "|druntime-test-shared";
+
+  checkPhase = ''
+    # Build default lib test runners
+    ninja -j$NIX_BUILD_CORES all-test-runners
+
+    ${fixNames}
+
+    # Run dmd testsuite
+    export DMD_TESTSUITE_MAKE_ARGS="-j$NIX_BUILD_CORES DMD=$DMD"
+    ctest -V -R "dmd-testsuite"
+
+    # Build and run LDC D unittests.
+    ctest --output-on-failure -R "ldc2-unittest"
+
+    # Run LIT testsuite.
+    ctest -V -R "lit-tests"
+
+    # Run default lib unittests
+    ctest -j$NIX_BUILD_CORES --output-on-failure -E "ldc2-unittest|lit-tests|dmd-testsuite${additionalExceptions}"
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/ldc2 \
+        --prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
+        --set-default CC "${targetPackages.stdenv.cc}/bin/cc"
+   '';
+
+  meta = with stdenv.lib; {
+    description = "The LLVM-based D compiler";
+    homepage = "https://github.com/ldc-developers/ldc";
+    # from https://github.com/ldc-developers/ldc/blob/master/LICENSE
+    license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
+    maintainers = with maintainers; [ ThomasMader lionello ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+  };
+}
diff --git a/pkgs/development/interpreters/hy/default.nix b/pkgs/development/interpreters/hy/default.nix
index 5816b3a175c6..a3aca532b0f3 100644
--- a/pkgs/development/interpreters/hy/default.nix
+++ b/pkgs/development/interpreters/hy/default.nix
@@ -1,23 +1,32 @@
-{ stdenv, fetchurl, python2Packages }:
+{ stdenv, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "hy";
-  version = "0.17.0";
+  version = "0.18.0";
 
-  src = python2Packages.fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "1gdbqsirsdxj320wnp7my5awzs1kfs6m4fqmkzbd1zd47qzj0zfi";
+    sha256 = "04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2";
   };
 
-  propagatedBuildInputs = with python2Packages; [
+  checkInputs = with python3Packages; [ flake8 pytest ];
+
+  propagatedBuildInputs = with python3Packages; [
     appdirs
     astor
     clint
+    colorama
     fastentrypoints
     funcparserlib
     rply
+    pygments
   ];
 
+  # Hy does not include tests in the source distribution from PyPI, so only test executable.
+  checkPhase = ''
+    $out/bin/hy --help > /dev/null
+  '';
+
   meta = with stdenv.lib; {
     description = "A LISP dialect embedded in Python";
     homepage = "http://hylang.org/";
diff --git a/pkgs/development/interpreters/luajit/2.0.nix b/pkgs/development/interpreters/luajit/2.0.nix
index 7db3830447f7..3f0fa7303ebb 100644
--- a/pkgs/development/interpreters/luajit/2.0.nix
+++ b/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,9 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5";
+  version = "2.0.5-2020-03-20";
+  rev = "e613105";
   isStable = true;
-  sha256 = "0yg9q4q6v028bgh85317ykc9whgxgysp76qzaqgq55y6jy11yjw7";
+  sha256 = "0k843z90s4hi0qhri6ixy8sv21nig8jwbznpqgqg845ji530kqj7";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: p != "aarch64-linux")
       (platforms.linux ++ platforms.darwin);
diff --git a/pkgs/development/interpreters/luajit/2.1.nix b/pkgs/development/interpreters/luajit/2.1.nix
index e8f1b8b338c4..b5a7894e98d9 100644
--- a/pkgs/development/interpreters/luajit/2.1.nix
+++ b/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,7 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-beta3";
+  version = "2.1.0-2020-03-20";
+  rev = "9143e86";
   isStable = false;
-  sha256 = "1hyrhpkwjqsv54hnnx4cl8vk44h9d6c9w0fz1jfjz00w255y7lhs";
+  sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b";
 }
diff --git a/pkgs/development/interpreters/luajit/default.nix b/pkgs/development/interpreters/luajit/default.nix
index 9be368a59027..9bc76c44937f 100644
--- a/pkgs/development/interpreters/luajit/default.nix
+++ b/pkgs/development/interpreters/luajit/default.nix
@@ -1,7 +1,8 @@
-{ stdenv, fetchurl, buildPackages
+{ stdenv, fetchFromGitHub, buildPackages
 , name ? "luajit-${version}"
 , isStable
 , sha256
+, rev
 , version
 , extraMeta ? {}
 , callPackage
@@ -10,6 +11,7 @@
 , enableFFI ? true
 , enableJIT ? true
 , enableJITDebugModule ? enableJIT
+, enableGC64 ? stdenv.hostPlatform.isAarch64
 , enable52Compat ? false
 , enableValgrindSupport ? false
 , valgrind ? null
@@ -28,6 +30,7 @@ let
      optional (!enableFFI) "-DLUAJIT_DISABLE_FFI"
   ++ optional (!enableJIT) "-DLUAJIT_DISABLE_JIT"
   ++ optional enable52Compat "-DLUAJIT_ENABLE_LUA52COMPAT"
+  ++ optional (!enableGC64) "-DLUAJIT_DISABLE_GC64"
   ++ optional useSystemMalloc "-DLUAJIT_USE_SYSMALLOC"
   ++ optional enableValgrindSupport "-DLUAJIT_USE_VALGRIND"
   ++ optional enableGDBJITSupport "-DLUAJIT_USE_GDBJIT"
@@ -37,9 +40,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit name version;
-  src = fetchurl {
-    url = "http://luajit.org/download/LuaJIT-${version}.tar.gz";
-    inherit sha256;
+  src = fetchFromGitHub {
+    owner  = "LuaJIT";
+    repo   = "LuaJIT";
+    inherit sha256 rev;
   };
 
   luaversion = "5.1";
diff --git a/pkgs/development/interpreters/php/default.nix b/pkgs/development/interpreters/php/default.nix
index 1d6576b383cd..e0aea60e2939 100644
--- a/pkgs/development/interpreters/php/default.nix
+++ b/pkgs/development/interpreters/php/default.nix
@@ -1,250 +1,280 @@
 # We have tests for PCRE and PHP-FPM in nixos/tests/php/ or
 # both in the same attribute named nixosTests.php
 
-{ callPackage, config, fetchurl, lib, makeWrapper, stdenv, symlinkJoin
-, writeText , autoconf, automake, bison, flex, libtool, pkgconfig, re2c
-, apacheHttpd, libargon2, libxml2, pcre, pcre2 , systemd, valgrind
-}:
+{ callPackage, lib, stdenv, nixosTests }@_args:
 
 let
   generic =
-  { version
-  , sha256
-  , extraPatches ? []
-
-  # Sapi flags
-  , cgiSupport ? config.php.cgi or true
-  , cliSupport ? config.php.cli or true
-  , fpmSupport ? config.php.fpm or true
-  , pearSupport ? config.php.pear or true
-  , pharSupport ? config.php.phar or true
-  , phpdbgSupport ? config.php.phpdbg or true
-
-
-  # Misc flags
-  , apxs2Support ? config.php.apxs2 or (!stdenv.isDarwin)
-  , argon2Support ? config.php.argon2 or true
-  , cgotoSupport ? config.php.cgoto or false
-  , embedSupport ? config.php.embed or false
-  , ipv6Support ? config.php.ipv6 or true
-  , systemdSupport ? config.php.systemd or stdenv.isLinux
-  , valgrindSupport ? config.php.valgrind or true
-  , ztsSupport ? (config.php.zts or false) || (apxs2Support)
-  }: let
-    pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre;
-  in stdenv.mkDerivation {
-    pname = "php";
-
-    inherit version;
-
-    enableParallelBuilding = true;
-
-    nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ];
-
-    buildInputs =
-      # PCRE extension
-      [ pcre' ]
-
-      # Enable sapis
-      ++ lib.optional pearSupport [ libxml2.dev ]
-
-      # Misc deps
-      ++ lib.optional apxs2Support apacheHttpd
-      ++ lib.optional argon2Support libargon2
-      ++ lib.optional systemdSupport systemd
-      ++ lib.optional valgrindSupport valgrind
-    ;
-
-    CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
-
-    configureFlags =
-      # Disable all extensions
-      [ "--disable-all" ]
-
-      # PCRE
-      ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre'.dev}" ]
-      ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
-      ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
-      ++ [ "PCRE_LIBDIR=${pcre'}" ]
-
-
-      # Enable sapis
-      ++ lib.optional (!cgiSupport) "--disable-cgi"
-      ++ lib.optional (!cliSupport) "--disable-cli"
-      ++ lib.optional fpmSupport    "--enable-fpm"
-      ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ]
-      ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml"
-      ++ lib.optional pharSupport   "--enable-phar"
-      ++ lib.optional phpdbgSupport "--enable-phpdbg"
-
-
-      # Misc flags
-      ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs"
-      ++ lib.optional argon2Support "--with-password-argon2=${libargon2}"
-      ++ lib.optional cgotoSupport "--enable-re2c-cgoto"
-      ++ lib.optional embedSupport "--enable-embed"
-      ++ lib.optional (!ipv6Support) "--disable-ipv6"
-      ++ lib.optional systemdSupport "--with-fpm-systemd"
-      ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
-      ++ lib.optional ztsSupport "--enable-maintainer-zts"
-    ;
-
-    hardeningDisable = [ "bindnow" ];
-
-    preConfigure = ''
-      # Don't record the configure flags since this causes unnecessary
-      # runtime dependencies
-      for i in main/build-defs.h.in scripts/php-config.in; do
-        substituteInPlace $i \
-          --replace '@CONFIGURE_COMMAND@' '(omitted)' \
-          --replace '@CONFIGURE_OPTIONS@' "" \
-          --replace '@PHP_LDFLAGS@' ""
-      done
-
-      export EXTENSION_DIR=$out/lib/php/extensions
-
-      ./buildconf --copy --force
-
-      if test -f $src/genfiles; then
-        ./genfiles
-      fi
-    '' + lib.optionalString stdenv.isDarwin ''
-      substituteInPlace configure --replace "-lstdc++" "-lc++"
-    '';
-
-    postInstall = ''
-      test -d $out/etc || mkdir $out/etc
-      cp php.ini-production $out/etc/php.ini
-    '';
-
-    postFixup = ''
-      mkdir -p $dev/bin $dev/share/man/man1
-      mv $out/bin/phpize $out/bin/php-config $dev/bin/
-      mv $out/share/man/man1/phpize.1.gz \
-         $out/share/man/man1/php-config.1.gz \
-         $dev/share/man/man1/
-    '';
-
-    src = fetchurl {
-      url = "https://www.php.net/distributions/php-${version}.tar.bz2";
-      inherit sha256;
-    };
-
-    patches = [ ./fix-paths-php7.patch ] ++ extraPatches;
-
-    separateDebugInfo = true;
-
-    outputs = [ "out" "dev" ];
-
-    meta = with stdenv.lib; {
-      description = "An HTML-embedded scripting language";
-      homepage = "https://www.php.net/";
-      license = licenses.php301;
-      maintainers = with maintainers; [ globin etu ma27 ];
-      platforms = platforms.all;
-      outputsToInstall = [ "out" "dev" ];
-    };
-  };
-
-  generic' = { version, sha256, self, selfWithExtensions, ... }@args:
-    let
-      php = generic (builtins.removeAttrs args [ "self" "selfWithExtensions" ]);
-
-      php-packages = (callPackage ../../../top-level/php-packages.nix {
-        php = self;
-        phpWithExtensions = selfWithExtensions;
-      });
-
-      buildEnv = { extensions ? (_: []), extraConfig ? "" }:
-        let
-          getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
-          enabledExtensions = extensions php-packages.extensions;
-
-          # Generate extension load configuration snippets from the
-          # extension parameter. This is an attrset suitable for use
-          # with textClosureList, which is used to put the strings in
-          # the right order - if a plugin which is dependent on
-          # another plugin is placed before its dependency, it will
-          # fail to load.
-          extensionTexts =
-            lib.listToAttrs
-              (map (ext:
+    { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
+    , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
+    , pkgconfig, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
+    , systemd, valgrind
+
+    , version
+    , sha256
+    , extraPatches ? []
+
+    # Sapi flags
+    , cgiSupport ? true
+    , cliSupport ? true
+    , fpmSupport ? true
+    , pearSupport ? true
+    , pharSupport ? true
+    , phpdbgSupport ? true
+
+    # Misc flags
+    , apxs2Support ? !stdenv.isDarwin
+    , argon2Support ? true
+    , cgotoSupport ? false
+    , embedSupport ? false
+    , ipv6Support ? true
+    , systemdSupport ? stdenv.isLinux
+    , valgrindSupport ? true
+    , ztsSupport ? apxs2Support
+    }@args:
+      let
+        # buildEnv wraps php to provide additional extensions and
+        # configuration. Its usage is documented in
+        # doc/languages-frameworks/php.section.md.
+        #
+        # Create a buildEnv with earlier overridden values and
+        # extensions functions in its closure. This is necessary for
+        # consecutive calls to buildEnv and overrides to work as
+        # expected.
+        mkBuildEnv = prevArgs: prevExtensionFunctions: lib.makeOverridable (
+          { extensions ? ({...}: []), extraConfig ? "", ... }@innerArgs:
+            let
+              allArgs = args // prevArgs // innerArgs;
+              filteredArgs = builtins.removeAttrs allArgs [ "extensions" "extraConfig" ];
+              php = generic filteredArgs;
+
+              php-packages = (callPackage ../../../top-level/php-packages.nix {
+                php = phpWithExtensions;
+              });
+
+              allExtensionFunctions = prevExtensionFunctions ++ [ extensions ];
+              enabledExtensions =
+                builtins.foldl'
+                  (state: f:
+                    f { enabled = state; all = php-packages.extensions; })
+                  []
+                  allExtensionFunctions;
+
+              getExtName = ext: lib.removePrefix "php-" (builtins.parseDrvName ext.name).name;
+
+              # Recursively get a list of all internal dependencies
+              # for a list of extensions.
+              getDepsRecursively = extensions:
                 let
-                  extName = getExtName ext;
-                  type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension";
+                  deps = lib.concatMap
+                           (ext: ext.internalDeps or [])
+                           extensions;
                 in
-                  lib.nameValuePair extName {
-                    text = "${type}=${ext}/lib/php/extensions/${extName}.so";
-                    deps = lib.optionals (ext ? internalDeps)
-                      (map getExtName ext.internalDeps);
-                  })
-                enabledExtensions);
-
-          extNames = map getExtName enabledExtensions;
-          extraInit = writeText "custom-php.ini" ''
-            ${lib.concatStringsSep "\n"
-              (lib.textClosureList extensionTexts extNames)}
-            ${extraConfig}
+                  if ! (deps == []) then
+                    deps ++ (getDepsRecursively deps)
+                  else
+                    deps;
+
+              # Generate extension load configuration snippets from the
+              # extension parameter. This is an attrset suitable for use
+              # with textClosureList, which is used to put the strings in
+              # the right order - if a plugin which is dependent on
+              # another plugin is placed before its dependency, it will
+              # fail to load.
+              extensionTexts =
+                lib.listToAttrs
+                  (map (ext:
+                    let
+                      extName = getExtName ext;
+                      type = "${lib.optionalString (ext.zendExtension or false) "zend_"}extension";
+                    in
+                      lib.nameValuePair extName {
+                        text = "${type}=${ext}/lib/php/extensions/${extName}.so";
+                        deps = lib.optionals (ext ? internalDeps)
+                          (map getExtName ext.internalDeps);
+                      })
+                    (enabledExtensions ++ (getDepsRecursively enabledExtensions)));
+
+              extNames = map getExtName enabledExtensions;
+              extraInit = writeText "php.ini" ''
+                ${lib.concatStringsSep "\n"
+                  (lib.textClosureList extensionTexts extNames)}
+                ${extraConfig}
+              '';
+
+              phpWithExtensions = symlinkJoin rec {
+                name = "php-with-extensions-${version}";
+                inherit (php) version;
+                nativeBuildInputs = [ makeWrapper ];
+                passthru = {
+                  buildEnv = mkBuildEnv allArgs allExtensionFunctions;
+                  withExtensions = mkWithExtensions allArgs allExtensionFunctions;
+                  phpIni = "${phpWithExtensions}/lib/php.ini";
+                  unwrapped = php;
+                  tests = nixosTests.php;
+                  inherit (php-packages) packages extensions;
+                  inherit (php) meta;
+                };
+                paths = [ php ];
+                postBuild = ''
+                  cp ${extraInit} $out/lib/php.ini
+
+                  wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
+
+                  if test -e $out/bin/php-fpm; then
+                    wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib
+                  fi
+                '';
+              };
+            in
+              phpWithExtensions);
+
+        mkWithExtensions = prevArgs: prevExtensionFunctions: extensions:
+          mkBuildEnv prevArgs prevExtensionFunctions { inherit extensions; };
+
+        pcre' = if (lib.versionAtLeast version "7.3") then pcre2 else pcre;
+      in
+        stdenv.mkDerivation {
+          pname = "php";
+
+          inherit version;
+
+          enableParallelBuilding = true;
+
+          nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ];
+
+          buildInputs =
+            # PCRE extension
+            [ pcre' ]
+
+            # Enable sapis
+            ++ lib.optional pearSupport [ libxml2.dev ]
+
+            # Misc deps
+            ++ lib.optional apxs2Support apacheHttpd
+            ++ lib.optional argon2Support libargon2
+            ++ lib.optional systemdSupport systemd
+            ++ lib.optional valgrindSupport valgrind
+          ;
+
+          CXXFLAGS = lib.optionalString stdenv.cc.isClang "-std=c++11";
+
+          configureFlags =
+            # Disable all extensions
+            [ "--disable-all" ]
+
+            # PCRE
+            ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre'.dev}" ]
+            ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
+            ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre'.dev}" ]
+            ++ [ "PCRE_LIBDIR=${pcre'}" ]
+
+
+            # Enable sapis
+            ++ lib.optional (!cgiSupport) "--disable-cgi"
+            ++ lib.optional (!cliSupport) "--disable-cli"
+            ++ lib.optional fpmSupport    "--enable-fpm"
+            ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ]
+            ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml"
+            ++ lib.optional pharSupport   "--enable-phar"
+            ++ lib.optional phpdbgSupport "--enable-phpdbg"
+
+
+            # Misc flags
+            ++ lib.optional apxs2Support "--with-apxs2=${apacheHttpd.dev}/bin/apxs"
+            ++ lib.optional argon2Support "--with-password-argon2=${libargon2}"
+            ++ lib.optional cgotoSupport "--enable-re2c-cgoto"
+            ++ lib.optional embedSupport "--enable-embed"
+            ++ lib.optional (!ipv6Support) "--disable-ipv6"
+            ++ lib.optional systemdSupport "--with-fpm-systemd"
+            ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
+            ++ lib.optional ztsSupport "--enable-maintainer-zts"
+          ;
+
+          hardeningDisable = [ "bindnow" ];
+
+          preConfigure = ''
+            # Don't record the configure flags since this causes unnecessary
+            # runtime dependencies
+            for i in main/build-defs.h.in scripts/php-config.in; do
+              substituteInPlace $i \
+                --replace '@CONFIGURE_COMMAND@' '(omitted)' \
+                --replace '@CONFIGURE_OPTIONS@' "" \
+                --replace '@PHP_LDFLAGS@' ""
+            done
+
+            export EXTENSION_DIR=$out/lib/php/extensions
+
+            ./buildconf --copy --force
+
+            if test -f $src/genfiles; then
+              ./genfiles
+            fi
+          '' + lib.optionalString stdenv.isDarwin ''
+            substituteInPlace configure --replace "-lstdc++" "-lc++"
           '';
-        in
-          symlinkJoin {
-            name = "php-with-extensions-${version}";
-            inherit (php) version;
-            nativeBuildInputs = [ makeWrapper ];
-            passthru = {
-              inherit buildEnv withExtensions enabledExtensions;
-              inherit (php-packages) packages extensions;
-            };
-            paths = [ php ];
-            postBuild = ''
-              cp ${extraInit} $out/lib/custom-php.ini
-
-              wrapProgram $out/bin/php --set PHP_INI_SCAN_DIR $out/lib
-
-              if test -e $out/bin/php-fpm; then
-                 wrapProgram $out/bin/php-fpm --set PHP_INI_SCAN_DIR $out/lib
-              fi
-            '';
+
+          postInstall = ''
+            test -d $out/etc || mkdir $out/etc
+            cp php.ini-production $out/etc/php.ini
+          '';
+
+          postFixup = ''
+            mkdir -p $dev/bin $dev/share/man/man1
+            mv $out/bin/phpize $out/bin/php-config $dev/bin/
+            mv $out/share/man/man1/phpize.1.gz \
+               $out/share/man/man1/php-config.1.gz \
+               $dev/share/man/man1/
+          '';
+
+          src = fetchurl {
+            url = "https://www.php.net/distributions/php-${version}.tar.bz2";
+            inherit sha256;
           };
 
-      withExtensions = extensions: buildEnv { inherit extensions; };
-    in
-      php.overrideAttrs (_: {
-        passthru = {
-          enabledExtensions = [];
-          inherit buildEnv withExtensions;
-          inherit (php-packages) packages extensions;
+          patches = [ ./fix-paths-php7.patch ] ++ extraPatches;
+
+          separateDebugInfo = true;
+
+          outputs = [ "out" "dev" ];
+
+          passthru = {
+            buildEnv = mkBuildEnv {} [];
+            withExtensions = mkWithExtensions {} [];
+          };
+
+          meta = with stdenv.lib; {
+            description = "An HTML-embedded scripting language";
+            homepage = "https://www.php.net/";
+            license = licenses.php301;
+            maintainers = teams.php.members;
+            platforms = platforms.all;
+            outputsToInstall = [ "out" "dev" ];
+          };
         };
-      });
 
-  php72base = generic' {
+  php72base = callPackage generic (_args // {
     version = "7.2.29";
     sha256 = "08xry2fgqgg8s0ym1hh11wkbr36av3zq1bn4krbciw1b7x8gb8ga";
-    self = php72base;
-    selfWithExtensions = php72;
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
-  };
+  });
 
-  php73base = generic' {
+  php73base = callPackage generic (_args // {
     version = "7.3.16";
     sha256 = "0bh499v9dfgh9k51w4rird1slb9rh9whp5h37fb84c98d992s1xq";
-    self = php73base;
-    selfWithExtensions = php73;
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
-  };
+  });
 
-  php74base = generic' {
+  php74base = callPackage generic (_args // {
     version = "7.4.4";
     sha256 = "17w2m4phhpj76x5fx67vgjrlkcczqvky3f5in1kjg2pch90qz3ih";
-    self = php74base;
-    selfWithExtensions = php74;
-  };
+  });
 
-  defaultPhpExtensions = extensions: with extensions; ([
+  defaultPhpExtensions = { all, ... }: with all; ([
     bcmath calendar curl ctype dom exif fileinfo filter ftp gd
     gettext gmp iconv intl json ldap mbstring mysqli mysqlnd opcache
     openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite pgsql
@@ -252,13 +282,13 @@ let
     tokenizer xmlreader xmlwriter zip zlib
   ] ++ lib.optionals (!stdenv.isDarwin) [ imap ]);
 
-  defaultPhpExtensionsWithHash = extensions:
-    (defaultPhpExtensions extensions) ++ [ extensions.hash ];
+  defaultPhpExtensionsWithHash = { all, ... }:
+    (defaultPhpExtensions { inherit all; }) ++ [ all.hash ];
 
   php74 = php74base.withExtensions defaultPhpExtensions;
   php73 = php73base.withExtensions defaultPhpExtensionsWithHash;
   php72 = php72base.withExtensions defaultPhpExtensionsWithHash;
 
 in {
-  inherit php72base php73base php74base php72 php73 php74;
+  inherit php72 php73 php74;
 }
diff --git a/pkgs/development/libraries/libeatmydata/default.nix b/pkgs/development/libraries/libeatmydata/default.nix
index aeaa45a7905e..da7a186bea6f 100644
--- a/pkgs/development/libraries/libeatmydata/default.nix
+++ b/pkgs/development/libraries/libeatmydata/default.nix
@@ -1,23 +1,41 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchFromGitHub, autoreconfHook, strace, which }:
 
 stdenv.mkDerivation rec {
-  name = "libeatmydata-105";
+  pname = "libeatmydata";
+  version = "105";
 
-  src = fetchurl {
-    url = "https://www.flamingspork.com/projects/libeatmydata/${name}.tar.gz";
-    sha256 = "1pd8sc73cgc41ldsvq6g8ics1m5k8gdcb91as9yg8z5jnrld1lmx";
+  src = fetchFromGitHub {
+    owner = "stewartsmith";
+    repo = pname;
+    rev = "${pname}-${version}";
+    sha256 = "0sx803h46i81h67xbpd3c7ky0nhaw4gij214nsx4lqig70223v9r";
   };
 
   patches = [ ./find-shell-lib.patch ];
+
   patchFlags = "-p0";
+
   postPatch = ''
-    substituteInPlace eatmydata.in --replace NIX_OUT_DIR $out
+    substituteInPlace eatmydata.in \
+      --replace NIX_OUT_DIR $out
+
+    patchShebangs .
   '';
 
-  meta = {
-    homepage = "https://www.flamingspork.com/projects/libeatmydata/";
-    license = stdenv.lib.licenses.gpl3Plus;
+  nativeBuildInputs = [
+    autoreconfHook
+  ] ++ stdenv.lib.optionals doCheck [ strace which ];
+
+  # while we can *build* in parallel, the tests also run in parallel which does
+  # not work with v105. Later versions (unreleased) have a fix for that. The
+  # problem is that on hydra we cannot use strace, so the tests don't run there.
+  enableParallelBuilding = true;
+  doCheck = false;
+
+  meta = with stdenv.lib; {
     description = "Small LD_PRELOAD library to disable fsync and friends";
-    platforms = stdenv.lib.platforms.unix;
+    homepage = "https://www.flamingspork.com/projects/libeatmydata/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libextractor/default.nix b/pkgs/development/libraries/libextractor/default.nix
index ea155440c8d1..3db0b056c0f0 100644
--- a/pkgs/development/libraries/libextractor/default.nix
+++ b/pkgs/development/libraries/libextractor/default.nix
@@ -1,8 +1,21 @@
-{ fetchurl, stdenv, libtool, gettext, zlib, bzip2, flac, libvorbis
+{ fetchurl, stdenv, substituteAll
+, libtool, gettext, zlib, bzip2, flac, libvorbis
 , exiv2, libgsf, rpm, pkgconfig, fetchpatch
+, gstreamerSupport ? true, gst_all_1 ? null
+# ^ Needed e.g. for proper id3 and FLAC support.
+#   Set to `false` to decrease package closure size by about 87 MB (53%).
+, gstPlugins ? (gst: [ gst.gst-plugins-base gst.gst-plugins-good ])
+# If an application needs additional gstreamer plugins it can also make them
+# available by adding them to the environment variable
+# GST_PLUGIN_SYSTEM_PATH_1_0, e.g. like this:
+# postInstall = ''
+#   wrapProgram $out/bin/extract --prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0"
+# '';
+# See also <https://nixos.org/nixpkgs/manual/#sec-language-gnome>.
 , gtkSupport ? true, glib ? null, gtk3 ? null
 , videoSupport ? true, ffmpeg ? null, libmpeg2 ? null}:
 
+assert gstreamerSupport -> gst_all_1 != null && builtins.isList (gstPlugins gst_all_1);
 assert gtkSupport -> glib != null && gtk3 != null;
 assert videoSupport -> ffmpeg != null && libmpeg2 != null;
 
@@ -28,6 +41,15 @@ stdenv.mkDerivation rec {
       sha256 = "01xhcjbzv6p53wz7y2ii76kb8m9iwvnm4ip9w4a0bpgaxqz4b9fw";
       excludes = [ "ChangeLog" ];
     })
+  ] ++ stdenv.lib.optionals gstreamerSupport [
+
+    # Libraries cannot be wrapped so we need to hardcode the plug-in paths.
+    (substituteAll {
+      src = ./gst-hardcode-plugins.patch;
+      load_gst_plugins = stdenv.lib.concatMapStrings
+        (plugin: ''gst_registry_scan_path(gst_registry_get(), "${plugin}/lib/gstreamer-1.0");'')
+        (gstPlugins gst_all_1);
+    })
   ];
 
   preConfigure =
@@ -40,7 +62,9 @@ stdenv.mkDerivation rec {
    [ libtool gettext zlib bzip2 flac libvorbis exiv2
      libgsf rpm
      pkgconfig
-   ] ++ stdenv.lib.optionals gtkSupport [ glib gtk3 ]
+   ] ++ stdenv.lib.optionals gstreamerSupport
+          ([ gst_all_1.gstreamer ] ++ gstPlugins gst_all_1)
+     ++ stdenv.lib.optionals gtkSupport [ glib gtk3 ]
      ++ stdenv.lib.optionals videoSupport [ ffmpeg libmpeg2 ];
 
   configureFlags = [
diff --git a/pkgs/development/libraries/libextractor/gst-hardcode-plugins.patch b/pkgs/development/libraries/libextractor/gst-hardcode-plugins.patch
new file mode 100644
index 000000000000..73ecf5f252f6
--- /dev/null
+++ b/pkgs/development/libraries/libextractor/gst-hardcode-plugins.patch
@@ -0,0 +1,11 @@
+--- a/src/plugins/gstreamer_extractor.c
++++ b/src/plugins/gstreamer_extractor.c
+@@ -2215,6 +2215,7 @@ void __attribute__ ((constructor))
+ gstreamer_init ()
+ {
+   gst_init (NULL, NULL);
++  @load_gst_plugins@
+   g_log_set_default_handler (&log_handler, NULL);
+   g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL | G_LOG_FLAG_RECURSION,
+                     &log_handler, NULL);
+
diff --git a/pkgs/development/libraries/openmpi/default.nix b/pkgs/development/libraries/openmpi/default.nix
index 30085e950a49..627ac68d68d7 100644
--- a/pkgs/development/libraries/openmpi/default.nix
+++ b/pkgs/development/libraries/openmpi/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
 , rdma-core, zlib, numactl, libevent, hwloc, pkgsTargetTarget, symlinkJoin
+, libpsm2, libfabric
 
 # Enable CUDA support
 , cudaSupport ? false, cudatoolkit ? null
@@ -9,6 +10,10 @@
 
 # Pass PATH/LD_LIBRARY_PATH to point to current mpirun by default
 , enablePrefix ? false
+
+# Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
+, fabricSupport ? stdenv.isLinux && stdenv.isx86_64
+
 }:
 
 assert !cudaSupport || cudatoolkit != null;
@@ -44,7 +49,8 @@ in stdenv.mkDerivation rec {
     ++ lib.optionals isLinux [ libnl numactl ]
     ++ lib.optionals cudaSupport [ cudatoolkit ]
     ++ [ libevent hwloc ]
-    ++ lib.optional (isLinux || isFreeBSD) rdma-core;
+    ++ lib.optional (isLinux || isFreeBSD) rdma-core
+    ++ lib.optional fabricSupport [ libpsm2 libfabric ];
 
   nativeBuildInputs = [ perl ];
 
@@ -56,6 +62,7 @@ in stdenv.mkDerivation rec {
     # https://github.com/openucx/ucx
     # https://www.open-mpi.org/faq/?category=buildcuda
     ++ lib.optionals cudaSupport [ "--with-cuda=${cudatoolkit_joined}" "--enable-dlopen" ]
+    ++ lib.optionals fabricSupport [ "--with-psm2=${libpsm2}" "--with-libfabric=${libfabric}" ]
     ;
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/protobuf/3.11.nix b/pkgs/development/libraries/protobuf/3.11.nix
index fa238fdca546..c5d8b21b1ac4 100644
--- a/pkgs/development/libraries/protobuf/3.11.nix
+++ b/pkgs/development/libraries/protobuf/3.11.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }:
 
 callPackage ./generic-v3.nix {
-  version = "3.11.3";
-  sha256 = "0cn6h6fg5h64q5h3ncfwr3m7yszf5n9gpvgpv7s1csndp0ffzmin";
+  version = "3.11.4";
+  sha256 = "00g61f1yd8z5l0z0svmr3hms38ph35lcx2y7hivw6fahslw0l8yw";
 }
diff --git a/pkgs/development/libraries/vtk/default.nix b/pkgs/development/libraries/vtk/default.nix
index a7e1bc432904..6a7e26c753cd 100644
--- a/pkgs/development/libraries/vtk/default.nix
+++ b/pkgs/development/libraries/vtk/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   # At least, we use -fPIC for other packages to be able to use this in shared
   # objects.
   cmakeFlags = [ "-DCMAKE_C_FLAGS=-fPIC" "-DCMAKE_CXX_FLAGS=-fPIC" "-DVTK_USE_SYSTEM_TIFF=1" "-DOPENGL_INCLUDE_DIR=${libGL}/include" ]
-    ++ optional (qtLib != null) [ "-DVTK_USE_QT:BOOL=ON" ]
+    ++ optional (qtLib != null) [ "-DVTK_Group_Qt:BOOL=ON" ]
     ++ optional stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
     ++ optional enablePython [ "-DVTK_WRAP_PYTHON:BOOL=ON" ];
 
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Open source libraries for 3D computer graphics, image processing and visualization";
-    homepage = "http://www.vtk.org/";
+    homepage = "https://www.vtk.org/";
     license = stdenv.lib.licenses.bsd3;
     maintainers = with stdenv.lib.maintainers; [ knedlsepp ];
     platforms = with stdenv.lib.platforms; unix;
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index d30b23aa3ee3..eae40d4dfaed 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -8,11 +8,11 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
 
   pname = "x509";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-x509/releases/download/v${version}/x509-v${version}.tbz";
-    sha256 = "0gcs3vpmixxxx2q4b2iphb1xw1jffya1wkp0p1xbmsfcghzrj20m";
+    sha256 = "1vmjqwmxf7zz157rlp3wp3zp88kw62m4f22i0xmxhinssd0dvr9c";
   };
 
   useDune2 = true;
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index 4b4d2e4a9038..997f20e137db 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "The uncompromising Python code formatter";
-    homepage    = "https://github.com/ambv/black";
+    homepage    = "https://github.com/psf/black";
     license     = licenses.mit;
     maintainers = with maintainers; [ sveitser ];
   };
diff --git a/pkgs/development/tools/asmfmt/default.nix b/pkgs/development/tools/asmfmt/default.nix
index 9794180eec19..c93b864b70f8 100644
--- a/pkgs/development/tools/asmfmt/default.nix
+++ b/pkgs/development/tools/asmfmt/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "asmfmt";
-  version = "1.1";
+  version = "1.2.1";
 
   goPackagePath = "github.com/klauspost/asmfmt";
 
@@ -14,19 +14,15 @@ buildGoPackage rec {
     owner = "klauspost";
     repo = "asmfmt";
     rev = "v${version}";
-    sha256 = "08mybfizcvck460axakycz9ndzcgwqilp5mmgm4bl8hfrn36mskw";
+    sha256 = "0qwxb4yx12yl817vgbhs7acaj98lgk27dh50mb8sm9ccw1f43h9i";
   };
 
-  patches = [
-    (fetchpatch {
-      excludes = ["README.md"];
-      url = "https://github.com/klauspost/asmfmt/commit/39a37c8aed8095e0fdfb07f78fc8acbd465d9627.patch";
-      sha256 = "18bc77l87mf0yvqc3adlakxz6wflyqfsc2wrmh9q0nlqghlmnw5k";
-    })
-  ];
-
   goDeps = ./deps.nix;
 
+  # This package comes with its own version of goimports, gofmt and goreturns
+  # but these binaries are outdated and are offered by other packages.
+  subPackages = [ "cmd/asmfmt" ];
+
   meta = with lib; {
     description = "Go Assembler Formatter";
     homepage = "https://github.com/klauspost/asmfmt";
diff --git a/pkgs/development/tools/build-managers/meson/default.nix b/pkgs/development/tools/build-managers/meson/default.nix
index 0eae4215d46a..6c882b27896a 100644
--- a/pkgs/development/tools/build-managers/meson/default.nix
+++ b/pkgs/development/tools/build-managers/meson/default.nix
@@ -72,7 +72,7 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://mesonbuild.com";
     description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
     license = licenses.asl20;
-    maintainers = with maintainers; [ jtojnar mbe rasendubi ];
+    maintainers = with maintainers; [ jtojnar mbe ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/tools/flatpak-builder/default.nix b/pkgs/development/tools/flatpak-builder/default.nix
index e400051e2c66..32519594e4f0 100644
--- a/pkgs/development/tools/flatpak-builder/default.nix
+++ b/pkgs/development/tools/flatpak-builder/default.nix
@@ -29,7 +29,6 @@
 , gnumake
 , gnupg
 , gnutar
-, p7zip
 , json-glib
 , libcap
 , libdwarf
@@ -99,7 +98,6 @@ in stdenv.mkDerivation rec {
       cpio = "${cpio}/bin/cpio";
       git = "${gitMinimal}/bin/git";
       rofilesfuse = "${ostree}/bin/rofiles-fuse";
-      sevenz = "${p7zip}/bin/7z";
       strip = "${binutils}/bin/strip";
       eustrip = "${elfutils}/bin/eu-strip";
       euelfcompress = "${elfutils}/bin/eu-elfcompress";
diff --git a/pkgs/development/tools/flatpak-builder/fix-paths.patch b/pkgs/development/tools/flatpak-builder/fix-paths.patch
index cc7d9e82b0af..e24fade68669 100644
--- a/pkgs/development/tools/flatpak-builder/fix-paths.patch
+++ b/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -49,15 +49,6 @@
    va_end (ap);
  
    return res;
-@@ -470,7 +470,7 @@ un7z (GFile       *dir,
-       GError     **error)
- {
-   gboolean res;
--  const gchar *argv[] = { "7z",  "x", sevenz_path, NULL };
-+  const gchar *argv[] = { "@sevenz@",  "x", sevenz_path, NULL };
- 
-   res = flatpak_spawnv (dir, NULL, 0, error, argv);
- 
 @@ -483,7 +483,7 @@ unrpm (GFile   *dir,
         GError **error)
  {
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index 3b82eea10490..c33a4cf69f59 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.25.0";
+  version = "1.25.1";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "0xf9chk6f1ydg2wyi6wzj2fxl641z7iyk6spp5gb1chq7plsi8sm";
+    sha256 = "04r26nn72myacs6v2jq8mi4kjik82iwsh6w59h4k9yk0my3fjwia";
   };
 
-  modSha256 = "15lb8y4kj2h514nl5517ah3ml9d2i71zv6ah08lpycz1b4v9hlwv";
+  modSha256 = "1pz5f2hv2lssiwsp60hsycg2ijyafb7r5fl2yrvflqg547k3n8x2";
   subPackages = [ "cmd/golangci-lint" ];
 
   meta = with lib; {
diff --git a/pkgs/development/tools/gox/default.nix b/pkgs/development/tools/gox/default.nix
index ac4e2c582c45..7c800df0a6ba 100644
--- a/pkgs/development/tools/gox/default.nix
+++ b/pkgs/development/tools/gox/default.nix
@@ -1,25 +1,22 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 
-buildGoPackage {
+buildGoPackage rec {
   pname = "gox";
-  version = "20181025";
+  version = "1.0.1";
 
   goPackagePath = "github.com/mitchellh/gox";
 
   src = fetchFromGitHub {
     owner = "mitchellh";
     repo = "gox";
-    rev = "9cc487598128d0963ff9dcc51176e722788ec645";
-    sha256 = "18indkdwq2m1wy95d71lgbf46jxxrfc5km1fys5laapz993h77v6";
+    rev = "v${version}";
+    sha256 = "0mkh81hd7kn45dz7b6yhzqsg2mvg1g6pwx89jjigxrnqhyg9vrl7";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/mitchellh/gox";
     description = "A dead simple, no frills Go cross compile tool";
     platforms = platforms.all;
     license = licenses.mpl20;
   };
-
 }
diff --git a/pkgs/development/tools/gox/deps.nix b/pkgs/development/tools/gox/deps.nix
deleted file mode 100644
index c4991e38ff02..000000000000
--- a/pkgs/development/tools/gox/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/mitchellh/iochan";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/iochan";
-      rev = "87b45ffd0e9581375c491fef3d32130bb15c5bd7";
-      sha256 = "1435kdcx3j1xgr6mm5c7w7hjx015jb20yfqlkp93q143hspf02fx";
-    };
-  }
-]
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index 885cef99111c..8df465c4958f 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qx3vwsynmil1h3d2dzvqz0jzshfyy3vin14zjfmd353d915hf06";
+    sha256 = "14ird8z8f467spa0kdzjf6lq7pipq7rwxrdk6ppv7y1fxw96qm9x";
   };
 
-  modSha256 = "0276dngh29kzgm95d23r8ajjrrkss0v0f0wfq1ribgsxh17v0y5n";
+  modSha256 = "09q8dh4g4k0y7mrhwyi9py7zdiipmq91j3f32cn635v2xw6zyg2k";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/pkgs/development/tools/misc/scc/default.nix b/pkgs/development/tools/misc/scc/default.nix
index 7a6a060464e1..47596789de7a 100644
--- a/pkgs/development/tools/misc/scc/default.nix
+++ b/pkgs/development/tools/misc/scc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "scc";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "1wk6s9ga9rkywgqys960s6fz4agwzh3ac2l6cpcr7kca4379s28k";
+    sha256 = "0hbcq5qn97kr9d4q9m2p1mj3ijn8zmwycrs5bgf1kfiwr09wg2yh";
   };
 
   goPackagePath = "github.com/boyter/scc";
diff --git a/pkgs/development/tools/rust/cargo-deny/default.nix b/pkgs/development/tools/rust/cargo-deny/default.nix
new file mode 100644
index 000000000000..727a789c42fb
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, perl, pkgconfig, openssl, Security, libiconv, curl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-deny";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "EmbarkStudios";
+    repo = pname;
+    rev = version;
+    sha256 = "0pmh6x7rb0v1g087xgyicw9mm4ayppgh7vzvq3hs8vip2zvy7r56";
+  };
+
+  cargoSha256 = "00lh6nxc17dyl8z2l70gzc7l1vpn448lzi1c69wxxcqnk8y0ka9w";
+
+  nativeBuildInputs = [ perl pkgconfig ];
+
+  buildInputs = [ openssl  ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+  meta = with lib; {
+    description = "Cargo plugin to generate list of all licenses for a crate";
+    homepage = "https://github.com/EmbarkStudios/cargo-deny";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ matthiasbeyer ];
+  };
+}
+
diff --git a/pkgs/development/tools/rust/racerd/default.nix b/pkgs/development/tools/rust/racerd/default.nix
index 02b32c6485e6..72588b37415a 100644
--- a/pkgs/development/tools/rust/racerd/default.nix
+++ b/pkgs/development/tools/rust/racerd/default.nix
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
 
   installPhase = ''
     mkdir -p $out/bin
-    cp -p target/release/racerd $out/bin/
+    cp -p $releaseDir/racerd $out/bin/
     wrapProgram $out/bin/racerd --set-default RUST_SRC_PATH "$RUST_SRC_PATH"
   '';
 
diff --git a/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch b/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
index 29886fccd5f1..b4fa5a8353cd 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
+++ b/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
@@ -1,6 +1,6 @@
-From 786cd8df9e9fa245c4dbab1bfd21b7949b8a5300 Mon Sep 17 00:00:00 2001
+From b0d7b8b348adba8131b12f99be7a9a30a1cca867 Mon Sep 17 00:00:00 2001
 From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Thu, 26 Mar 2020 01:54:11 +0100
+Date: Thu, 30 Apr 2020 00:24:57 +0200
 Subject: [PATCH] Add cargo.lock
 
 ---
@@ -10,7 +10,7 @@ Subject: [PATCH] Add cargo.lock
 
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 00000000..976ea6d4
+index 00000000..8ae15438
 --- /dev/null
 +++ b/Cargo.lock
 @@ -0,0 +1,2527 @@
@@ -49,9 +49,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "anyhow"
-+version = "1.0.27"
++version = "1.0.28"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "013a6e0a2cbe3d20f9c60b65458f7a7f7a5e636c5d0f45a5a6aee5d4b1f01785"
++checksum = "d9a60d744a80c30fcb657dfe2c1b22bcb3e814c1a1e3674f32bf5820b570fbff"
 +
 +[[package]]
 +name = "arrayref"
@@ -213,9 +213,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.50"
++version = "1.0.52"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
 +
 +[[package]]
 +name = "cfg-if"
@@ -359,9 +359,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "curl"
-+version = "0.4.28"
++version = "0.4.29"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eda1c0c03cacf3365d84818a40293f0e3f3953db8759c9c565a3b434edf0b52e"
++checksum = "762e34611d2d5233a506a79072be944fddd057db2f18e04c0d6fa79e3fd466fd"
 +dependencies = [
 + "curl-sys",
 + "libc",
@@ -374,9 +374,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "curl-sys"
-+version = "0.4.30+curl-7.69.1"
++version = "0.4.31+curl-7.70.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "923b38e423a8f47a4058e96f2a1fa2865a6231097ee860debd678d244277d50c"
++checksum = "dcd62757cc4f5ab9404bc6ca9f0ae447e729a1403948ce5106bd588ceac6a3b0"
 +dependencies = [
 + "cc",
 + "libc",
@@ -494,9 +494,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "filetime"
-+version = "0.2.8"
++version = "0.2.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1ff6d4dab0aa0c8e6346d46052e93b13a16cf847b54ed357087c35011048cc7d"
++checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
 +dependencies = [
 + "cfg-if",
 + "libc",
@@ -604,9 +604,9 @@ index 00000000..976ea6d4
 +checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
 +dependencies = [
 + "proc-macro-hack",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 +]
 +
 +[[package]]
@@ -692,9 +692,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "hermit-abi"
-+version = "0.1.8"
++version = "0.1.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
++checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
 +dependencies = [
 + "libc",
 +]
@@ -772,9 +772,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "jpeg-decoder"
-+version = "0.1.18"
++version = "0.1.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0256f0aec7352539102a9efbcb75543227b7ab1117e0f95450023af730128451"
++checksum = "5b47b4c4e017b01abdc5bcc126d2d1002e5a75bbe3ce73f9f4f311a916363704"
 +dependencies = [
 + "byteorder",
 + "rayon",
@@ -782,7 +782,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "js-sys"
-+version = "0.3.37"
++version = "0.3.38"
 +dependencies = [
 + "wasm-bindgen",
 + "wasm-bindgen-futures",
@@ -811,9 +811,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.68"
++version = "0.2.69"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
 +
 +[[package]]
 +name = "libz-sys"
@@ -1001,9 +1001,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "num_cpus"
-+version = "1.12.0"
++version = "1.13.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 +dependencies = [
 + "hermit-abi",
 + "libc",
@@ -1011,9 +1011,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "openssl"
-+version = "0.10.28"
++version = "0.10.29"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "973293749822d7dd6370d6da1e523b0d1db19f06c459134c658b2a4261378b52"
++checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
 +dependencies = [
 + "bitflags 1.2.1",
 + "cfg-if",
@@ -1031,18 +1031,18 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "openssl-src"
-+version = "111.7.0+1.1.1e"
++version = "111.9.0+1.1.1g"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fde5a8c01ef8aa31ff8d0aaf9bae248581ed8840fca0b66e51cc9f294a8cb2c"
++checksum = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
 +dependencies = [
 + "cc",
 +]
 +
 +[[package]]
 +name = "openssl-sys"
-+version = "0.9.54"
++version = "0.9.55"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
++checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
 +dependencies = [
 + "autocfg 1.0.0",
 + "cc",
@@ -1108,9 +1108,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "pin-utils"
-+version = "0.1.0-alpha.4"
++version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5894c618ce612a3fa23881b152b608bafb8c56cfc22f434a3ba3120b40f7b587"
++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 +
 +[[package]]
 +name = "pkg-config"
@@ -1167,35 +1167,35 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "proc-macro-error"
-+version = "0.4.12"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "18f33027081eba0a6d8aba6d1b1c3a3be58cbb12106341c2d5759fcd9b5277e7"
++checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
 +dependencies = [
 + "proc-macro-error-attr",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 + "version_check 0.9.1",
 +]
 +
 +[[package]]
 +name = "proc-macro-error-attr"
-+version = "0.4.12"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8a5b4b77fdb63c1eca72173d68d24501c54ab1269409f6b672c85deb18af69de"
++checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 + "syn-mid",
 + "version_check 0.9.1",
 +]
 +
 +[[package]]
 +name = "proc-macro-hack"
-+version = "0.5.14"
++version = "0.5.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fcfdefadc3d57ca21cf17990a28ef4c0f7c61383a28cb7604cf4a18e6ede1420"
++checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
 +
 +[[package]]
 +name = "proc-macro-nested"
@@ -1214,9 +1214,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.9"
++version = "1.0.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435"
++checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
 +dependencies = [
 + "unicode-xid 0.2.0",
 +]
@@ -1242,7 +1242,7 @@ index 00000000..976ea6d4
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 +]
 +
 +[[package]]
@@ -1495,9 +1495,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.6"
++version = "1.3.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
++checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
 +dependencies = [
 + "aho-corasick",
 + "memchr",
@@ -1578,9 +1578,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "ryu"
-+version = "1.0.3"
++version = "1.0.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
++checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
 +
 +[[package]]
 +name = "safemem"
@@ -1628,29 +1628,29 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.105"
++version = "1.0.106"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e707fbbf255b8fc8c3b99abb91e7257a622caeb20a9818cbadbeeede4e0932ff"
++checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
 +dependencies = [
 + "serde_derive",
 +]
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.105"
++version = "1.0.106"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac5d00fc561ba2724df6758a17de23df5914f20e41cb00f94d5b7ae42fffaff8"
++checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 +]
 +
 +[[package]]
 +name = "serde_json"
-+version = "1.0.48"
++version = "1.0.52"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9371ade75d4c2d6cb154141b9752cf3781ec9c05e0e5cf35060e1e70ee7b9c25"
++checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd"
 +dependencies = [
 + "itoa",
 + "ryu",
@@ -1677,15 +1677,15 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "smallvec"
-+version = "1.2.0"
++version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c2fb2ec9bcd216a5b0d0ccf31ab17b5ed1d627960edff65bbe95d3ce221cefc"
++checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
 +
 +[[package]]
 +name = "socket2"
-+version = "0.3.11"
++version = "0.3.12"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8b74de517221a2cb01a53349cf54182acdc31a074727d3079068448c0676d85"
++checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
 +dependencies = [
 + "cfg-if",
 + "libc",
@@ -1713,9 +1713,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "structopt"
-+version = "0.3.12"
++version = "0.3.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c8faa2719539bbe9d77869bfb15d4ee769f99525e707931452c97b693b3f159d"
++checksum = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef"
 +dependencies = [
 + "clap",
 + "lazy_static",
@@ -1724,15 +1724,15 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "structopt-derive"
-+version = "0.4.5"
++version = "0.4.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f88b8e18c69496aad6f9ddf4630dd7d585bcaf765786cb415b9aec2fe5a0430"
++checksum = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a"
 +dependencies = [
 + "heck",
 + "proc-macro-error",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 +]
 +
 +[[package]]
@@ -1748,11 +1748,11 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "syn"
-+version = "1.0.17"
++version = "1.0.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
++checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
 + "unicode-xid 0.2.0",
 +]
@@ -1763,9 +1763,9 @@ index 00000000..976ea6d4
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 +]
 +
 +[[package]]
@@ -1832,21 +1832,20 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "threadpool"
-+version = "1.7.1"
++version = "1.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2f0c90a5f3459330ac8bc0d2f879c693bb7a2f59689c1083fc4ef83834da865"
++checksum = "e8dae184447c15d5a6916d973c642aec485105a13cd238192a6927ae3e077d66"
 +dependencies = [
 + "num_cpus",
 +]
 +
 +[[package]]
 +name = "time"
-+version = "0.1.42"
++version = "0.1.43"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
 +dependencies = [
 + "libc",
-+ "redox_syscall",
 + "winapi",
 +]
 +
@@ -1900,9 +1899,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "trybuild"
-+version = "1.0.24"
++version = "1.0.26"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "24b4e093c5ed1a60b22557090120aa14f90ca801549c0949d775ea07c1407720"
++checksum = "4e5696e4fd793743fbcc29943fe965ea3993b6c3d2a6a3a35c6680d926fd3a49"
 +dependencies = [
 + "glob",
 + "lazy_static",
@@ -2038,9 +2037,9 @@ index 00000000..976ea6d4
 +checksum = "2bc16925d405153a91e01cdac2a5549aa25ca9148b5176e25e601f6536344d94"
 +dependencies = [
 + "heck",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 +]
 +
 +[[package]]
@@ -2051,7 +2050,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "cfg-if",
 + "js-sys",
@@ -2067,7 +2066,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-anyref-xform"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "rayon",
@@ -2079,14 +2078,14 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-backend"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "bumpalo",
 + "lazy_static",
 + "log 0.4.8",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 + "wasm-bindgen-shared",
 +]
 +
@@ -2100,7 +2099,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-cli"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "assert_cmd",
@@ -2128,7 +2127,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-cli-support"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "base64 0.9.3",
@@ -2150,7 +2149,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-futures"
-+version = "0.4.10"
++version = "0.4.11"
 +dependencies = [
 + "cfg-if",
 + "futures-channel-preview",
@@ -2162,7 +2161,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-macro"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "quote 1.0.3",
 + "trybuild",
@@ -2173,18 +2172,18 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-macro-support"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 + "wasm-bindgen-backend",
 + "wasm-bindgen-shared",
 +]
 +
 +[[package]]
 +name = "wasm-bindgen-multi-value-xform"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "rayon",
@@ -2205,11 +2204,11 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-shared"
-+version = "0.2.60"
++version = "0.2.61"
 +
 +[[package]]
 +name = "wasm-bindgen-test"
-+version = "0.3.10"
++version = "0.3.11"
 +dependencies = [
 + "console_error_panic_hook",
 + "js-sys",
@@ -2235,15 +2234,15 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-test-macro"
-+version = "0.3.10"
++version = "0.3.11"
 +dependencies = [
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
 +]
 +
 +[[package]]
 +name = "wasm-bindgen-threads-xform"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "walrus",
@@ -2252,7 +2251,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-wasm-conventions"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "walrus",
@@ -2260,7 +2259,7 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-wasm-interpreter"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "log 0.4.8",
@@ -2271,18 +2270,18 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wasm-bindgen-webidl"
-+version = "0.2.60"
++version = "0.2.61"
 +dependencies = [
 + "anyhow",
 + "env_logger",
 + "heck",
 + "lazy_static",
 + "log 0.4.8",
-+ "proc-macro2 1.0.9",
++ "proc-macro2 1.0.10",
 + "quote 1.0.3",
 + "sourcefile",
 + "structopt",
-+ "syn 1.0.17",
++ "syn 1.0.18",
 + "wasm-bindgen-backend",
 + "weedle",
 +]
@@ -2336,25 +2335,25 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "wast"
-+version = "11.0.0"
++version = "14.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df4d67ba9266f4fcaf2e8a1afadc5e2a959e51aecc07b1ecbdf85a6ddaf08bde"
++checksum = "47b11c94c63d5365a76ea287f8e6e5b6050233fae4b2423aea2a1e126a385e17"
 +dependencies = [
 + "leb128",
 +]
 +
 +[[package]]
 +name = "wat"
-+version = "1.0.12"
++version = "1.0.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a9400dc1c8512087b2d974b1b9b0a6c4e6e26e7e8acf629e3e351165a1ed301"
++checksum = "03db18bc33cff3859c296efbefdcc00763a644539feeadca3415a1cee8a2835d"
 +dependencies = [
-+ "wast 11.0.0",
++ "wast 14.0.0",
 +]
 +
 +[[package]]
 +name = "web-sys"
-+version = "0.3.37"
++version = "0.3.38"
 +dependencies = [
 + "js-sys",
 + "wasm-bindgen",
@@ -2393,6 +2392,7 @@ index 00000000..976ea6d4
 +name = "websockets"
 +version = "0.1.0"
 +dependencies = [
++ "js-sys",
 + "wasm-bindgen",
 + "web-sys",
 +]
@@ -2437,9 +2437,9 @@ index 00000000..976ea6d4
 +
 +[[package]]
 +name = "winapi-util"
-+version = "0.1.3"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4ccfbf554c6ad11084fb7517daca16cfdcaccbdadba4fc336f032a8b12c2ad80"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
 +dependencies = [
 + "winapi",
 +]
@@ -2542,5 +2542,5 @@ index 00000000..976ea6d4
 + "web-sys",
 +]
 -- 
-2.25.0
+2.25.4
 
diff --git a/pkgs/development/tools/wasm-bindgen-cli/default.nix b/pkgs/development/tools/wasm-bindgen-cli/default.nix
index b52346d96a8d..0385ba79d7fc 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -2,19 +2,19 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.60";
+  version = "0.2.61";
 
   src = fetchFromGitHub {
     owner = "rustwasm";
     repo = "wasm-bindgen";
     rev = version;
-    sha256 = "1jr4v5y9hbkyg8gjkr3qc2qxwhyagfs8q3y3z248mr1919mcas8h";
+    sha256 = "1lz4yscs17vix96isqpwwjhjcgj46zh2ljiwvfsk44wky8vwkyb7";
   };
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkgconfig ];
 
-  cargoSha256 = "08g110qahipgm1qyyihgqwnkr23w0gk1gp63ici5dj2qsxnc4mxv";
+  cargoSha256 = "1vblvajhx5gn08rinv6bnw61zah62il015rzm0d4vs2b9p0iaann";
   cargoPatches = [ ./0001-Add-cargo.lock.patch ];
   cargoBuildFlags = [ "-p" pname ];
 
diff --git a/pkgs/development/web/nodejs/v13.nix b/pkgs/development/web/nodejs/v13.nix
index 1f32c660f897..f157269b6364 100644
--- a/pkgs/development/web/nodejs/v13.nix
+++ b/pkgs/development/web/nodejs/v13.nix
@@ -1,13 +1,13 @@
 { callPackage, openssl, icu, python3, enableNpm ? true }:
 
 let
-  buildNodejs = callPackage ./nodejs.nix { 
+  buildNodejs = callPackage ./nodejs.nix {
     inherit openssl icu;
     python = python3;
   };
 in
   buildNodejs {
     inherit enableNpm;
-    version = "13.13.0";
-    sha256 = "0wy7d2alli59gwl73hpaf3bz1wxkkcw5yjsgyz42695fz86p64b7";
+    version = "13.14.0";
+    sha256 = "1gi9nl99wsiqpwm266jdsa8g6rmjw4wqwgrkx9f2qk1y3hjcs0vf";
   }
diff --git a/pkgs/development/web/nodejs/v14.nix b/pkgs/development/web/nodejs/v14.nix
new file mode 100644
index 000000000000..e2f8dd7173c7
--- /dev/null
+++ b/pkgs/development/web/nodejs/v14.nix
@@ -0,0 +1,14 @@
+{ callPackage, openssl, icu66, python3, enableNpm ? true }:
+
+let
+  buildNodejs = callPackage ./nodejs.nix {
+    inherit openssl;
+    icu = icu66;
+    python = python3;
+  };
+in
+  buildNodejs {
+    inherit enableNpm;
+    version = "14.1.0";
+    sha256 = "0pw39628y8qi2jagmmnfj0fkcbv00qcd1cqybiprf1v22hhij44n";
+  }
diff --git a/pkgs/games/gnuchess/default.nix b/pkgs/games/gnuchess/default.nix
index 43c60c667305..478da6dc32a1 100644
--- a/pkgs/games/gnuchess/default.nix
+++ b/pkgs/games/gnuchess/default.nix
@@ -1,12 +1,12 @@
-{stdenv, fetchurl, flex}:
+{stdenv, fetchurl, flex, makeWrapper}:
 let
   s = # Generated upstream information
   rec {
     baseName="gnuchess";
-    version="6.2.5";
+    version="6.2.6";
     name="${baseName}-${version}";
     url="mirror://gnu/chess/${name}.tar.gz";
-    sha256="00j8s0npgfdi41a0mr5w9qbdxagdk2v41lcr42rwl1jp6miyk6cs";
+    sha256="0kxhdv01ia91v2y0cmzbll391ns2vbmn65jjrv37h4s1srszh5yn";
   };
   buildInputs = [
     flex
@@ -18,6 +18,13 @@ stdenv.mkDerivation {
     inherit (s) url sha256;
   };
   inherit buildInputs;
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/gnuchessx --set PATH "$out/bin"
+    wrapProgram $out/bin/gnuchessu --set PATH "$out/bin"
+  '';
+
   meta = {
     inherit (s) version;
     description = "GNU Chess engine";
diff --git a/pkgs/games/steam/runtime-generated.nix b/pkgs/games/steam/runtime-generated.nix
index 36f16b6155ba..2f9fc517790e 100644
--- a/pkgs/games/steam/runtime-generated.nix
+++ b/pkgs/games/steam/runtime-generated.nix
@@ -130,6 +130,15 @@
       };
     }
     rec {
+      name = "libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
+      sha256 = "8dd843d4497f66c1af07551d8cc636e63ffff692187b51d0a01191c96bc0049a";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libatomic1.deb";
+      };
+    }
+    rec {
       name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_amd64";
       sha256 = "d33b00c3e19337f3abbb070f646adda7420f171f5487dca5e253b68b63a4d8fc";
       url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_amd64.deb";
@@ -247,6 +256,15 @@
       };
     }
     rec {
+      name = "libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_amd64";
+      sha256 = "9ddaac17a0f812eec785e34eefccb8ea24a4abf0fa6ad008d03b26d5493ea010";
+      url = "mirror://steamrt/pool/main/libc/libcapsule/libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcapsule-tools-relocatable.deb";
+      };
+    }
+    rec {
       name = "libcg_3.0.0016-0ubuntu1+srt6_amd64";
       sha256 = "6e627aa3ff1724ec8759431f3ead530f4c1511eb2b881d168a1929c8eac2e196";
       url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt6_amd64.deb";
@@ -670,6 +688,15 @@
       };
     }
     rec {
+      name = "libitm1_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
+      sha256 = "3c01841997e77fe1616b16936394c86383dc76e875f70e6d96ed016e4b945050";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libitm1_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libitm1.deb";
+      };
+    }
+    rec {
       name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_amd64";
       sha256 = "9a419baf1b88386cf643ca64965de607321e5d27f13c5bd68be0eb1a803fd7a9";
       url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_amd64.deb";
@@ -994,6 +1021,15 @@
       };
     }
     rec {
+      name = "libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_amd64";
+      sha256 = "12523138b2f21cd6d824b5c778ee49789ef0129ba6207cf03d3cf6b4138b1a1b";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_amd64.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libquadmath0.deb";
+      };
+    }
+    rec {
       name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64";
       sha256 = "e55b129066b92ab99f518d2f857b54e8754c3c873b5fb603270e3c4c36564a7b";
       url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_amd64.deb";
@@ -1192,27 +1228,27 @@
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-0_0.20200109.0-0+steamrt1.1+srt1_amd64";
-      sha256 = "680a2855b601ecccc81179df162722081ad0c7f4d1689e25bbce9d19de1a3eb6";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200109.0-0+steamrt1.1+srt1_amd64.deb";
+      name = "libsteam-runtime-tools-0-0_0.20200415.0+srt1_amd64";
+      sha256 = "0db05ccf5ca6705a6001d2c43ae5163cc289ef60126381bf886014e2344b4190";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200415.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-0.deb";
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-helpers_0.20200109.0-0+steamrt1.1+srt1_amd64";
-      sha256 = "b33f5c1217c7927057428b54faa4d0fcdddda1b5b18d708f755e96893ed6e108";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200109.0-0+steamrt1.1+srt1_amd64.deb";
+      name = "libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_amd64";
+      sha256 = "c568548d3c73df1c61efe06574e4ab17c2250059e9659690dec6c43db8695ce8";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-helpers.deb";
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200109.0-0+steamrt1.1+srt1_amd64";
-      sha256 = "4f2ddb4dd6f48636f95bb301541a023ba8235672e1e053be8da9961787958d18";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200109.0-0+steamrt1.1+srt1_amd64.deb";
+      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_amd64";
+      sha256 = "450c03778f4901e8b54f5dc879b071a84d18f4fc65e6308b91eebf40c77ef093";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-relocatable-libs.deb";
@@ -1444,18 +1480,18 @@
       };
     }
     rec {
-      name = "libvulkan1_1.2.135~srt-0+steamrt1.1+srt1_amd64";
-      sha256 = "99b0d38e6a2240dbea57c3ebee18de7013ee5d346c82bc82243c18e66bc50ae4";
-      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135~srt-0+steamrt1.1+srt1_amd64.deb";
+      name = "libvulkan1_1.2.135.0-1~steamrt1.1+srt1_amd64";
+      sha256 = "fa3dfb44b47c35e8a16de3c8240accdca131b70dd59a84f6e38cc6824219fa28";
+      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135.0-1~steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libvulkan1.deb";
       };
     }
     rec {
-      name = "libwaffle-1-0_1.6.0-2~steamrt1.3+srt1_amd64";
-      sha256 = "40ebf5f91707d0f183841ab8673f7bdd6d77540f090fc97cb69be54381c382be";
-      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.0-2~steamrt1.3+srt1_amd64.deb";
+      name = "libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_amd64";
+      sha256 = "a2a73515ddef193da5de918190df27fce75cf27c3081662c2f6fc5d227c96cc4";
+      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libwaffle-1-0.deb";
@@ -1912,27 +1948,27 @@
       };
     }
     rec {
-      name = "steam-runtime-tools-bin_0.20200109.0-0+steamrt1.1+srt1_amd64";
-      sha256 = "b5fcefb31c79a4ac085ef1050cdb2770507fbcf04eae713f9f16fdc3a483a85d";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200109.0-0+steamrt1.1+srt1_amd64.deb";
+      name = "steam-runtime-tools-bin_0.20200415.0+srt1_amd64";
+      sha256 = "e21848eb4cf02402600a952f5ca8bafbd95db9f5b3bb8d5af746721c5ac4ebc3";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200415.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steam-runtime-tools-bin.deb";
       };
     }
     rec {
-      name = "steamrt-legacy_1.20200128.0+srt1_amd64";
-      sha256 = "16a8adf316032424fa5cd53f498c53472c45a66b572e8c60adb2ff3ae7556eed";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200128.0+srt1_amd64.deb";
+      name = "steamrt-legacy_1.20200421.0+srt1_amd64";
+      sha256 = "9ee2744dbefc6c8055d3f496ad8e7ab8df01049a5571b9558c23b15001218fa6";
+      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200421.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steamrt-legacy.deb";
       };
     }
     rec {
-      name = "steamrt-libs_1.20200128.0+srt1_amd64";
-      sha256 = "18247c8534f8d67f63f4ece884b15276e0eecf540d0758ed6d5ae8b6a6ba510b";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200128.0+srt1_amd64.deb";
+      name = "steamrt-libs_1.20200421.0+srt1_amd64";
+      sha256 = "52ffad4cdca3f7f1c8091474a1a978941512c993e52d15fadab49165e248603b";
+      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200421.0+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steamrt-libs.deb";
@@ -1975,72 +2011,54 @@
       };
     }
     rec {
-      name = "vulkan-tools_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64";
-      sha256 = "b5c0c3fd9f5329f2aff54ce73f9281e3e61156556e1ee50c697b37f2144b1531";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64.deb";
+      name = "vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64";
+      sha256 = "bb70e1a31fe204319ea24292fe0ee7a9073f1b8f79e66ffb1ab192e500f8452b";
+      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "vulkan-tools.deb";
       };
     }
     rec {
-      name = "vulkan-tools-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64";
-      sha256 = "33b03b9413ec308f5ee5b8699e9f9ad939b501b602eea185fdcaa69863deb70c";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64.deb";
+      name = "vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64";
+      sha256 = "8e8aa0bf8fe147dd52e442a88e57a16f86b3a807201175585d47c64531865822";
+      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "vulkan-tools-multiarch.deb";
       };
     }
     rec {
-      name = "vulkan-utils_1.2.131.1+dfsg1-1+steamrt1.1+srt1_all";
-      sha256 = "f10004e20ed5fc93edf035f8f34bb9f8307eb34974a3ed5aae9ba87f00a2c468";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-utils_1.2.131.1+dfsg1-1+steamrt1.1+srt1_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-utils.deb";
-      };
-    }
-    rec {
-      name = "vulkan-utils-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64";
-      sha256 = "a1e9387bb5cb7effb23c5994dd2724614cfed7a447ec9c449ee4effcab58fd4c";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-utils-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_amd64.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-utils-multiarch.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils_1.6.0-2~steamrt1.3+srt1_amd64";
-      sha256 = "b465d2c357b0376f355a99ac99830e78974747859ec4ca9084bdeff9891920d6";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.0-2~steamrt1.3+srt1_amd64.deb";
+      name = "waffle-utils_1.6.1-0+steamrt1.1+srt1_amd64";
+      sha256 = "ad14f1e2dcc6b9ed7b036989cf5f18efb683879927a4b474692bbe1d7ddbe94c";
+      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.1-0+steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "waffle-utils.deb";
       };
     }
     rec {
-      name = "waffle-utils-multiarch_1.6.0-2~steamrt1.3+srt1_amd64";
-      sha256 = "de563095affd9fd5a4ec2941b72481bbd6176bdc210dad587372bab3cec406c1";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.0-2~steamrt1.3+srt1_amd64.deb";
+      name = "waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_amd64";
+      sha256 = "cf66bcb711bee45fb722d4125d37d8001fe7f3691f81ac224b62f849af0b4fba";
+      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "waffle-utils-multiarch.deb";
       };
     }
     rec {
-      name = "zenity_3.4.0-0ubuntu4+steamrt2+srt6_amd64";
-      sha256 = "5eb59aa8d2211153c780aab2304e8694d7eb0204f284193ff2a037dc9e1274db";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt2+srt6_amd64.deb";
+      name = "zenity_3.4.0-0ubuntu4+steamrt3+srt1_amd64";
+      sha256 = "c31a99f8d47cba157db251ea97cd14074d99c622969dd4d4173f76494feb7723";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt3+srt1_amd64.deb";
       source = fetchurl {
         inherit url sha256;
         name = "zenity.deb";
       };
     }
     rec {
-      name = "zenity-common_3.4.0-0ubuntu4+steamrt2+srt6_all";
-      sha256 = "bc8f0b80672833be72c6dd87d406b5fc0ef92e51f91e3a461678fc97844649bc";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt2+srt6_all.deb";
+      name = "zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all";
+      sha256 = "7ec603c8b00c5573e88e1df9785af4baef93b54e377e697515eb939b7c119cdc";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all.deb";
       source = fetchurl {
         inherit url sha256;
         name = "zenity-common.deb";
@@ -2184,6 +2202,15 @@
       };
     }
     rec {
+      name = "libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
+      sha256 = "aafd5b3b573f22562e3f93bfa449ca374e2788fb14d555193c5c57e996def8fb";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libatomic1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libatomic1.deb";
+      };
+    }
+    rec {
       name = "libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_i386";
       sha256 = "bcea5d6f2743c617dac44c4d836b6937a64816f3c288a56b656ee4adbf63714a";
       url = "mirror://steamrt/pool/main/a/attr/libattr1_2.4.46-5ubuntu1+steamrt1.1+srt2_i386.deb";
@@ -2301,6 +2328,15 @@
       };
     }
     rec {
+      name = "libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_i386";
+      sha256 = "5ce9e11e0204db54cecb59b59b1c6fc6bd5e4aefe73a327dbb85283b08591428";
+      url = "mirror://steamrt/pool/main/libc/libcapsule/libcapsule-tools-relocatable_0.20190926.0-0co1+srt1_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libcapsule-tools-relocatable.deb";
+      };
+    }
+    rec {
       name = "libcg_3.0.0016-0ubuntu1+srt6_i386";
       sha256 = "a21ba20d03f43163c1222fbc6a570c20783a1d504dcf92306ab029c437fd0df9";
       url = "mirror://steamrt/pool/main/n/nvidia-cg-toolkit/libcg_3.0.0016-0ubuntu1+srt6_i386.deb";
@@ -2724,6 +2760,15 @@
       };
     }
     rec {
+      name = "libitm1_5.4.0-7.really.6+steamrt1.2+srt2_i386";
+      sha256 = "188591aec152ece7b33b765079593a110a005046977d15794d5cc3be5b3381c7";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libitm1_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libitm1.deb";
+      };
+    }
+    rec {
       name = "libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_i386";
       sha256 = "a59a4de570335899d10f36b4b9552ee894fc0bb21c4ee4e06ed689f3fa55c2e6";
       url = "mirror://steamrt/pool/main/j/jackd2/libjack-jackd2-0_1.9.8~dfsg.1-1ubuntu2+srt5_i386.deb";
@@ -3048,6 +3093,15 @@
       };
     }
     rec {
+      name = "libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_i386";
+      sha256 = "58f646279972a537cf838fc935f9f37285e5255604d7b5c1e034644e77d3e25b";
+      url = "mirror://steamrt/pool/main/g/gcc-5/libquadmath0_5.4.0-7.really.6+steamrt1.2+srt2_i386.deb";
+      source = fetchurl {
+        inherit url sha256;
+        name = "libquadmath0.deb";
+      };
+    }
+    rec {
       name = "libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386";
       sha256 = "8827d782d8fedf7fe0285bbab14914e61d2ac5fe5e7ea297fbff916c7fd73939";
       url = "mirror://steamrt/pool/main/h/heimdal/libroken18-heimdal_1.6~git20120311.dfsg.1-2+srt6_i386.deb";
@@ -3246,27 +3300,27 @@
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-0_0.20200109.0-0+steamrt1.1+srt1_i386";
-      sha256 = "dfd80854857cdbc764f799f34acd7f37a4c3e773c4ba5c7c81394071148a140f";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200109.0-0+steamrt1.1+srt1_i386.deb";
+      name = "libsteam-runtime-tools-0-0_0.20200415.0+srt1_i386";
+      sha256 = "7da98a9a206829dbf5cc95570049502d1cf8dd2a2234a981787f14cc098c1739";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-0_0.20200415.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-0.deb";
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-helpers_0.20200109.0-0+steamrt1.1+srt1_i386";
-      sha256 = "f2c5fc6abcc3a938e2a0b27e8682b56944a2a61416e8d0edb5878af2e16c98cb";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200109.0-0+steamrt1.1+srt1_i386.deb";
+      name = "libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_i386";
+      sha256 = "bf06ad0ef0d5c80ddff53c58e4397c87fd655e1913ecf48a29560d27719b4d71";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-helpers_0.20200415.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-helpers.deb";
       };
     }
     rec {
-      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200109.0-0+steamrt1.1+srt1_i386";
-      sha256 = "c06ea7ec21d2114925c09d5245e87482c81cc4e1928ed31827ab58cb094721ae";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200109.0-0+steamrt1.1+srt1_i386.deb";
+      name = "libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_i386";
+      sha256 = "79e3b5b5a2904daccb17f5f54e3a87842dd9408fe04a8fee8d4ee83c3a3c0bcf";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/libsteam-runtime-tools-0-relocatable-libs_0.20200415.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libsteam-runtime-tools-0-relocatable-libs.deb";
@@ -3498,18 +3552,18 @@
       };
     }
     rec {
-      name = "libvulkan1_1.2.135~srt-0+steamrt1.1+srt1_i386";
-      sha256 = "ac161149e1106247de706788a7ea29dbe5e3c17c2b8aedf97ec892b311abbb75";
-      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135~srt-0+steamrt1.1+srt1_i386.deb";
+      name = "libvulkan1_1.2.135.0-1~steamrt1.1+srt1_i386";
+      sha256 = "dd6167b259a8ec4c927f3fa710d01456321b3ff40f6daa3383ec353866615aaa";
+      url = "mirror://steamrt/pool/main/v/vulkan-loader/libvulkan1_1.2.135.0-1~steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libvulkan1.deb";
       };
     }
     rec {
-      name = "libwaffle-1-0_1.6.0-2~steamrt1.3+srt1_i386";
-      sha256 = "875ebdcc60fd8be86b6e83a2155bea69aa3ef7442d60eef277bcdf814c663452";
-      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.0-2~steamrt1.3+srt1_i386.deb";
+      name = "libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_i386";
+      sha256 = "06f22a35ca49969e44f1bdaca82a1d085e69211bf3b39915d77d80f414ea8668";
+      url = "mirror://steamrt/pool/main/w/waffle/libwaffle-1-0_1.6.1-0+steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "libwaffle-1-0.deb";
@@ -3966,27 +4020,27 @@
       };
     }
     rec {
-      name = "steam-runtime-tools-bin_0.20200109.0-0+steamrt1.1+srt1_i386";
-      sha256 = "52e587b75463b08e0e903e30cd4b836bd4e39ead8d556807e5628eff36fdc477";
-      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200109.0-0+steamrt1.1+srt1_i386.deb";
+      name = "steam-runtime-tools-bin_0.20200415.0+srt1_i386";
+      sha256 = "3ea27a32f19f6e5133385fe4072f3d9a027c4f83604355baa34cf3ae5e346db5";
+      url = "mirror://steamrt/pool/main/s/steam-runtime-tools/steam-runtime-tools-bin_0.20200415.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steam-runtime-tools-bin.deb";
       };
     }
     rec {
-      name = "steamrt-legacy_1.20200128.0+srt1_i386";
-      sha256 = "3adf8b89ac83f12eeb431785bd18a569b1174bc81aa24d5c562687b823704f28";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200128.0+srt1_i386.deb";
+      name = "steamrt-legacy_1.20200421.0+srt1_i386";
+      sha256 = "08371f2a03aacd50f578b7aca4e6934fc60b9db1927e9eb3c8f1a5f6421e79e5";
+      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-legacy_1.20200421.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steamrt-legacy.deb";
       };
     }
     rec {
-      name = "steamrt-libs_1.20200128.0+srt1_i386";
-      sha256 = "8ad6092d1b4d257883ca4f3fac8ee5b9a71413c8bdbc149a9bec843047867311";
-      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200128.0+srt1_i386.deb";
+      name = "steamrt-libs_1.20200421.0+srt1_i386";
+      sha256 = "0f84ef7ebea603df58d4549a8368a51ceb3989d136174870bfd4c2ed50a13195";
+      url = "mirror://steamrt/pool/main/s/steamrt/steamrt-libs_1.20200421.0+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "steamrt-libs.deb";
@@ -4029,72 +4083,54 @@
       };
     }
     rec {
-      name = "vulkan-tools_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386";
-      sha256 = "6a8576cc6fadc4d18c97b100dc24bad1906f6f56cab024997787355025695df4";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386.deb";
+      name = "vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386";
+      sha256 = "1a252f79e90034726d80e49ab892ddfd504fa32dfef93887ed2c6e6e83e77248";
+      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "vulkan-tools.deb";
       };
     }
     rec {
-      name = "vulkan-tools-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386";
-      sha256 = "fae0430f540c71bd8f6ab3099f8aa132d2eda858b66facf3d8a586ab38cffde6";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386.deb";
+      name = "vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386";
+      sha256 = "f7f68aefcb4f45f855949ad84463c68071595568db27480d3df3ed9be5683b5f";
+      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-tools-multiarch_1.2.135.0+dfsg1-1~steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "vulkan-tools-multiarch.deb";
       };
     }
     rec {
-      name = "vulkan-utils_1.2.131.1+dfsg1-1+steamrt1.1+srt1_all";
-      sha256 = "f10004e20ed5fc93edf035f8f34bb9f8307eb34974a3ed5aae9ba87f00a2c468";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-utils_1.2.131.1+dfsg1-1+steamrt1.1+srt1_all.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-utils.deb";
-      };
-    }
-    rec {
-      name = "vulkan-utils-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386";
-      sha256 = "f81b81ef14f11662d2d5e5a7f688c2ef4f9ad9625ec5e59de91aab3f1ad45406";
-      url = "mirror://steamrt/pool/main/v/vulkan-tools/vulkan-utils-multiarch_1.2.131.1+dfsg1-1+steamrt1.1+srt1_i386.deb";
-      source = fetchurl {
-        inherit url sha256;
-        name = "vulkan-utils-multiarch.deb";
-      };
-    }
-    rec {
-      name = "waffle-utils_1.6.0-2~steamrt1.3+srt1_i386";
-      sha256 = "37df214d4f0fd1c5e9afce405756fc1615f2d5cba468b34569b13f3e8a08a2a5";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.0-2~steamrt1.3+srt1_i386.deb";
+      name = "waffle-utils_1.6.1-0+steamrt1.1+srt1_i386";
+      sha256 = "c88c88a12f5a9486a20275624c45ab7ac2170e846ea1368d1180e7b39c9d586f";
+      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils_1.6.1-0+steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "waffle-utils.deb";
       };
     }
     rec {
-      name = "waffle-utils-multiarch_1.6.0-2~steamrt1.3+srt1_i386";
-      sha256 = "5866f8bf43b6c19608670a8c565ce8f0dac9db9c943e65ac25e9cb4f951997a4";
-      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.0-2~steamrt1.3+srt1_i386.deb";
+      name = "waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_i386";
+      sha256 = "9aa2ee8c466c343dda5c8db9465238eb5f4cb55b5cfcfca8a3c109ba1d6c6d65";
+      url = "mirror://steamrt/pool/main/w/waffle/waffle-utils-multiarch_1.6.1-0+steamrt1.1+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "waffle-utils-multiarch.deb";
       };
     }
     rec {
-      name = "zenity_3.4.0-0ubuntu4+steamrt2+srt6_i386";
-      sha256 = "1c772d4f96424d204ab4913efcafbe43518257ca5032ca7b23d6c6ab76439117";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt2+srt6_i386.deb";
+      name = "zenity_3.4.0-0ubuntu4+steamrt3+srt1_i386";
+      sha256 = "b8b0d0781ed2e59ac22af8006e61323a5f1f5be44d47e0fea0ca32e8c575528d";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity_3.4.0-0ubuntu4+steamrt3+srt1_i386.deb";
       source = fetchurl {
         inherit url sha256;
         name = "zenity.deb";
       };
     }
     rec {
-      name = "zenity-common_3.4.0-0ubuntu4+steamrt2+srt6_all";
-      sha256 = "bc8f0b80672833be72c6dd87d406b5fc0ef92e51f91e3a461678fc97844649bc";
-      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt2+srt6_all.deb";
+      name = "zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all";
+      sha256 = "7ec603c8b00c5573e88e1df9785af4baef93b54e377e697515eb939b7c119cdc";
+      url = "mirror://steamrt/pool/main/z/zenity/zenity-common_3.4.0-0ubuntu4+steamrt3+srt1_all.deb";
       source = fetchurl {
         inherit url sha256;
         name = "zenity-common.deb";
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index 0e3eb2ce6986..964e08674ca6 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -56,8 +56,8 @@ in rec {
 
   winetricks = fetchFromGitHub rec {
     # https://github.com/Winetricks/winetricks/releases
-    version = "20191224";
-    sha256 = "07q3zh2i3xqzpg46ljarhq3a4ha9zwpc6jqzvly0kfglkh3b3v66";
+    version = "20200412";
+    sha256 = "0ccr8wdmhkhbccxs5hvn44ppl969n8j0c3rnnir5v6akjcb2nzzv";
     owner = "Winetricks";
     repo = "winetricks";
     rev = version;
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index c47825f90108..a93f7e6aeafc 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -10,10 +10,10 @@
 }:
 
 let
-  version = "1.12.1";
+  version = "1.13";
   prebuilt_server = fetchurl {
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    sha256 = "1sk6hbbnf4g6q58fspwlh8bn16j73j3i8hlcshqxzhfhl746krb3";
+    sha256 = "11gqsl2x18hgwdjajag9q8qdxqvdqr9m67zka22z7hnd3k569vjz";
   };
 in
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16zi0d2jjm2nlrwkwvsxzfpgy45ami45wfh67wq7na2h2ywfmgcp";
+    sha256 = "1zc73l5vm4hca8niaa3y76kpk7i9vj89wv4gbxmf1yjmixb71hby";
   };
 
   # postPatch:
diff --git a/pkgs/os-specific/linux/broadcom-sta/default.nix b/pkgs/os-specific/linux/broadcom-sta/default.nix
index f1b560e9f8b7..ecaa3896044d 100644
--- a/pkgs/os-specific/linux/broadcom-sta/default.nix
+++ b/pkgs/os-specific/linux/broadcom-sta/default.nix
@@ -35,6 +35,8 @@ stdenv.mkDerivation {
     ./linux-4.12.patch
     ./linux-4.15.patch
     ./linux-5.1.patch
+    # source: https://salsa.debian.org/Herrie82-guest/broadcom-sta/-/commit/247307926e5540ad574a17c062c8da76990d056f
+    ./linux-5.6.patch
     ./null-pointer-fix.patch
     ./gcc.patch
   ];
diff --git a/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch b/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch
new file mode 100644
index 000000000000..df5af79f77c6
--- /dev/null
+++ b/pkgs/os-specific/linux/broadcom-sta/linux-5.6.patch
@@ -0,0 +1,87 @@
+From dd057e40a167f4febb1a7c77dd32b7d36056952c Mon Sep 17 00:00:00 2001
+From: Herman van Hazendonk <github.com@herrie.org>
+Date: Tue, 31 Mar 2020 17:09:55 +0200
+Subject: [PATCH] Add fixes for 5.6 kernel
+
+Use ioremap instead of ioremap_nocache and proc_ops instead of file_operations on Linux kernel 5.6 and above.
+
+Signed-off-by: Herman van Hazendonk <github.com@herrie.org>
+---
+ src/shared/linux_osl.c |  6 +++++-
+ src/wl/sys/wl_linux.c  | 21 ++++++++++++++++++++-
+ 2 files changed, 25 insertions(+), 2 deletions(-)
+
+diff --git a/src/shared/linux_osl.c b/src/shared/linux_osl.c
+index 6157d18..dcfc075 100644
+--- a/src/shared/linux_osl.c
++++ b/src/shared/linux_osl.c
+@@ -942,7 +942,11 @@ osl_getcycles(void)
+ void *
+ osl_reg_map(uint32 pa, uint size)
+ {
+-	return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
++	#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
++		return (ioremap((unsigned long)pa, (unsigned long)size));
++	#else
++		return (ioremap_nocache((unsigned long)pa, (unsigned long)size));
++	#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
+ }
+ 
+ void
+diff --git a/src/wl/sys/wl_linux.c b/src/wl/sys/wl_linux.c
+index 0d05100..6d9dd0d 100644
+--- a/src/wl/sys/wl_linux.c
++++ b/src/wl/sys/wl_linux.c
+@@ -582,10 +582,17 @@ wl_attach(uint16 vendor, uint16 device, ulong regs,
+ 	}
+ 	wl->bcm_bustype = bustype;
+ 
++	#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
++	if ((wl->regsva = ioremap(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
++		WL_ERROR(("wl%d: ioremap() failed\n", unit));
++		goto fail;
++	}
++	#else 
+ 	if ((wl->regsva = ioremap_nocache(dev->base_addr, PCI_BAR0_WINSZ)) == NULL) {
+ 		WL_ERROR(("wl%d: ioremap() failed\n", unit));
+ 		goto fail;
+ 	}
++	#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
+ 
+ 	wl->bar1_addr = bar1_addr;
+ 	wl->bar1_size = bar1_size;
+@@ -772,8 +779,13 @@ wl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
+ 	if ((val & 0x0000ff00) != 0)
+ 		pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
+ 		bar1_size = pci_resource_len(pdev, 2);
++		#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
++		bar1_addr = (uchar *)ioremap(pci_resource_start(pdev, 2),
++			bar1_size);
++		#else
+ 		bar1_addr = (uchar *)ioremap_nocache(pci_resource_start(pdev, 2),
+ 			bar1_size);
++		#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
+ 	wl = wl_attach(pdev->vendor, pdev->device, pci_resource_start(pdev, 0), PCI_BUS, pdev,
+ 		pdev->irq, bar1_addr, bar1_size);
+ 
+@@ -3335,12 +3347,19 @@ wl_proc_write(struct file *filp, const char __user *buff, size_t length, loff_t
+ }
+ 
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0)
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)
++static const struct proc_ops wl_fops = {
++	.proc_read	= wl_proc_read,
++	.proc_write	= wl_proc_write,
++};
++#else
+ static const struct file_operations wl_fops = {
+ 	.owner	= THIS_MODULE,
+ 	.read	= wl_proc_read,
+ 	.write	= wl_proc_write,
+ };
+-#endif
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0) */
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 10, 0) */
+ 
+ static int
+ wl_reg_proc_entry(wl_info_t *wl)
diff --git a/pkgs/os-specific/linux/kernel/hardened-patches.json b/pkgs/os-specific/linux/kernel/hardened-patches.json
index a87628dd7697..aa0650138cce 100644
--- a/pkgs/os-specific/linux/kernel/hardened-patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened-patches.json
@@ -5,14 +5,14 @@
         "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.177.a/linux-hardened-4.14.177.a.patch"
     },
     "4.19": {
-        "name": "linux-hardened-4.19.118.a.patch",
-        "sha256": "120lnn9j9zsx1kcq4frcjmj2vj39x0g1yxrrx9nax2yjrzp4wfdw",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.118.a/linux-hardened-4.19.118.a.patch"
+        "name": "linux-hardened-4.19.119.a.patch",
+        "sha256": "1arm4833lkgsd27fhgrxbdxisvn20fsk6250x5yh6c8svjr759jx",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.119.a/linux-hardened-4.19.119.a.patch"
     },
     "5.4": {
-        "name": "linux-hardened-5.4.35.a.patch",
-        "sha256": "0vcqgrzns4d3z93mn8mv0sxkmj7ylbr8prff72c4ssvb0kd7agy9",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.35.a/linux-hardened-5.4.35.a.patch"
+        "name": "linux-hardened-5.4.36.a.patch",
+        "sha256": "00bmpzrma0nrgwwari6072g11cwhdk2riqmphlnkpxbarh7dwf4z",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.36.a/linux-hardened-5.4.36.a.patch"
     },
     "5.5": {
         "name": "linux-hardened-5.5.19.a.patch",
@@ -20,8 +20,8 @@
         "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.5.19.a/linux-hardened-5.5.19.a.patch"
     },
     "5.6": {
-        "name": "linux-hardened-5.6.7.a.patch",
-        "sha256": "1dnk9df4v2iw05vpn0s8q6b0ci2rzl2wiq77vhr40mpbg6p18fap",
-        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.7.a/linux-hardened-5.6.7.a.patch"
+        "name": "linux-hardened-5.6.8.a.patch",
+        "sha256": "06nrjv1v3m3phgcahpmf228jcgr496n9rlvvmbklc307q6w0g8f6",
+        "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.6.8.a/linux-hardened-5.6.8.a.patch"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index ab3d1b1a7196..b3073ac17794 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19.118";
+  version = "4.19.119";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "15lcq3xky59v88vb8vvnmgcsmm1fadz0m4jyrii6rynsz5jr6x49";
+    sha256 = "1klvdzz8sndg2zsr1anfy9p5fc1aapjqvc249myrbndyf55bk91b";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 08b28bc98dcd..2672a239e3bb 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.4.35";
+  version = "5.4.36";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1m06k19pbb3wz8z2dgf03jvzbbdh6q8jwwdz509s902a53vxasz1";
+    sha256 = "13avfvimjyg4lhj9micgib9bb5qpx11cja5liypid0rf2acfmymr";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.6.nix b/pkgs/os-specific/linux/kernel/linux-5.6.nix
index a31e6e26d3f6..c5bd84abf168 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.6.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.6.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "5.6.7";
+  version = "5.6.8";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1jljcva3gxg1yc2kw3jjgmhzzdm16nylzxl63zbndjza547l5813";
+    sha256 = "1pw2q9509jzp84b6qasaais2ws25v2wrjh072q0x3j520zzl5q8r";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/servers/coturn/default.nix b/pkgs/servers/coturn/default.nix
index 24dc256ba69f..51502c3fd97f 100644
--- a/pkgs/servers/coturn/default.nix
+++ b/pkgs/servers/coturn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, openssl, libevent }:
+{ stdenv, fetchFromGitHub, fetchpatch, openssl, libevent }:
 
 stdenv.mkDerivation rec {
   pname = "coturn";
@@ -13,7 +13,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openssl libevent ];
 
-  patches = [ ./pure-configure.patch ];
+  patches = [
+    ./pure-configure.patch
+    (fetchpatch {
+      name = "CVE-2020-6061+6062.patch";
+      url = "https://sources.debian.org/data/main/c/coturn/4.5.1.1-1.2/debian/patches/CVE-2020-6061+6062.patch";
+      sha256 = "0fcy1wp91bb4hlhnp96sf9bs0d9hf3pwx5f7b1r9cfvr3l5c1bk2";
+    })
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://coturn.net/";
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index b0be6c9b3b38..4964755332df 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -16,21 +16,13 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.0.1";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "4a93264ad0cda7ea2252d1ba057e474722f77848165f2893e0c76e21ae406415";
+    sha256 = "9ab179d1dccc6ba59aacac81a4cd10a039615c7a846d9f77f26b851da25d1a86";
   };
 
-  patches = [
-    (fetchpatch { # merged to upstream master, remove on update
-      name = "zfs-cpu-usage.diff";
-      url = "https://gitlab.labs.nic.cz/knot/knot-resolver/merge_requests/946.diff";
-      sha256 = "0mcvx4pfnl19h6zrv2fcgxdjarqzczn2dz85sylcczsfvdmn6i5m";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 
   # Path fixups for the NixOS service.
diff --git a/pkgs/servers/gotify/default.nix b/pkgs/servers/gotify/default.nix
index f2014aac9fdc..3f9f59a4aeec 100644
--- a/pkgs/servers/gotify/default.nix
+++ b/pkgs/servers/gotify/default.nix
@@ -10,18 +10,18 @@
 
 buildGoModule rec {
   pname = "gotify-server";
-  # Note that when this is updated, along with the hash, the `ui.nix` file
-  # should include the same changes to the version and the sha256.
-  version = "2.0.14";
+  # should be update just like all other files imported like that via the
+  # `update.sh` script.
+  version = import ./version.nix;
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "server";
     rev = "v${version}";
-    sha256 = "0hyy9fki2626cgd78l7fkk67lik6g1pkcpf6xr3gl07dxwcclyr8";
+    sha256 = import ./source-sha.nix;
   };
 
-  modSha256 = "1awhbc8qs2bwv6y2vwd92r4ys0l1bzymrb36iamr040x961682wv";
+  modSha256 = import ./mod-sha.nix;
 
   postPatch = ''
     substituteInPlace app.go \
diff --git a/pkgs/servers/gotify/mod-sha.nix b/pkgs/servers/gotify/mod-sha.nix
new file mode 100644
index 000000000000..16a3eddadb51
--- /dev/null
+++ b/pkgs/servers/gotify/mod-sha.nix
@@ -0,0 +1 @@
+"119f249rvlvxjhwc6wh10yyk3z41488mydmvxs44b5a4p67yvjfw"
\ No newline at end of file
diff --git a/pkgs/servers/gotify/package.json b/pkgs/servers/gotify/package.json
index 1c84de17f463..00f71337071f 100644
--- a/pkgs/servers/gotify/package.json
+++ b/pkgs/servers/gotify/package.json
@@ -3,9 +3,10 @@
   "version": "0.2.0",
   "private": true,
   "homepage": ".",
+  "proxy": "http://localhost:80",
   "dependencies": {
-    "@material-ui/core": "^4.4.3",
-    "@material-ui/icons": "^4.4.3",
+    "@material-ui/core": "^4.9.5",
+    "@material-ui/icons": "^4.9.1",
     "axios": "^0.19.0",
     "codemirror": "^5.43.0",
     "detect-browser": "^3.0.0",
diff --git a/pkgs/servers/gotify/source-sha.nix b/pkgs/servers/gotify/source-sha.nix
new file mode 100644
index 000000000000..c11391fb85cd
--- /dev/null
+++ b/pkgs/servers/gotify/source-sha.nix
@@ -0,0 +1 @@
+"0igzgpzrxkz31njhybsap505mlr32k4qma32v5rafqdi2naz5iyl"
\ No newline at end of file
diff --git a/pkgs/servers/gotify/ui.nix b/pkgs/servers/gotify/ui.nix
index 403f01c2a856..2a7f18430808 100644
--- a/pkgs/servers/gotify/ui.nix
+++ b/pkgs/servers/gotify/ui.nix
@@ -8,13 +8,13 @@ yarn2nix-moretea.mkYarnPackage rec {
   packageJSON = ./package.json;
   yarnNix = ./yarndeps.nix;
 
-  version = "2.0.14";
+  version = import ./version.nix;
 
   src_all = fetchFromGitHub {
     owner = "gotify";
     repo = "server";
     rev = "v${version}";
-    sha256 = "0hyy9fki2626cgd78l7fkk67lik6g1pkcpf6xr3gl07dxwcclyr8";
+    sha256 = import ./source-sha.nix;
   };
   src = "${src_all}/ui";
 
diff --git a/pkgs/servers/gotify/update-yarn-deps.sh b/pkgs/servers/gotify/update-yarn-deps.sh
deleted file mode 100755
index d25b5c429df2..000000000000
--- a/pkgs/servers/gotify/update-yarn-deps.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../ -i bash -p wget yarn2nix-moretea.yarn2nix
-
-# This script is based upon:
-# pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
-	echo "Regenerates the Yarn dependency lock files for the gotify-server package."
-	echo "Usage: $0 <git release tag>"
-	exit 1
-fi
-
-GOTIFY_WEB_SRC="https://raw.githubusercontent.com/gotify/server/$1"
-
-wget "$GOTIFY_WEB_SRC/ui/package.json" -O package.json
-wget "$GOTIFY_WEB_SRC/ui/yarn.lock" -O yarn.lock
-yarn2nix --lockfile=yarn.lock > yarndeps.nix
-rm yarn.lock
diff --git a/pkgs/servers/gotify/update.sh b/pkgs/servers/gotify/update.sh
new file mode 100755
index 000000000000..e26ffbde62ee
--- /dev/null
+++ b/pkgs/servers/gotify/update.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p wget yarn2nix-moretea.yarn2nix nix-prefetch-git jq
+
+set -euo pipefail
+
+dirname="$(dirname "$0")"
+
+latest_release=$(curl --silent https://api.github.com/repos/gotify/server/releases/latest)
+version=$(jq -r '.tag_name' <<<"$latest_release")
+echo got version $version
+echo \""${version#v}"\" > "$dirname/version.nix"
+printf '%s' $(nix-prefetch-git --quiet --rev ${version} https://github.com/gotify/server | jq .sha256) > $dirname/source-sha.nix
+tput setaf 1
+echo zeroing modSha256 in $dirname/mod-sha.nix
+tput sgr0
+printf '"%s"' "0000000000000000000000000000000000000000000000000000" > $dirname/mod-sha.nix
+
+GOTIFY_WEB_SRC="https://raw.githubusercontent.com/gotify/server/$version"
+
+curl --silent "$GOTIFY_WEB_SRC/ui/package.json" -o $dirname/package.json
+echo downloaded package.json
+curl --silent "$GOTIFY_WEB_SRC/ui/yarn.lock" -o $dirname/yarn.lock
+echo downloaded yarndeps.nix
+echo running yarn2nix
+yarn2nix --lockfile=$dirname/yarn.lock > $dirname/yarndeps.nix
+rm $dirname/yarn.lock
+echo removed yarn.lock
+
+echo running nix-build for ui
+nix-build -A gotify-server.ui
+echo running nix-build for gotify itself in order to get modSha256
+set +e
+modSha256="$(nix-build -A gotify-server 2>&1 | grep "got:" | cut -d':' -f3)"
+set -e
+printf '"%s"' "$modSha256" > $dirname/mod-sha.nix
+tput setaf 2
+echo got modSha256 of: $modSha256
+tput sgr0
+echo running nix-build -A gotify-server which should build gotify-server normally
+nix-build -A gotify-server
diff --git a/pkgs/servers/gotify/version.nix b/pkgs/servers/gotify/version.nix
new file mode 100644
index 000000000000..fbd14b6742d6
--- /dev/null
+++ b/pkgs/servers/gotify/version.nix
@@ -0,0 +1 @@
+"2.0.15"
diff --git a/pkgs/servers/gotify/yarndeps.nix b/pkgs/servers/gotify/yarndeps.nix
index 3f74ad74ccc2..ef9d7cedd8ed 100644
--- a/pkgs/servers/gotify/yarndeps.nix
+++ b/pkgs/servers/gotify/yarndeps.nix
@@ -714,6 +714,14 @@
       };
     }
     {
+      name = "_babel_runtime___runtime_7.8.7.tgz";
+      path = fetchurl {
+        name = "_babel_runtime___runtime_7.8.7.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.7.tgz";
+        sha1 = "8fefce9802db54881ba59f90bb28719b4996324d";
+      };
+    }
+    {
       name = "_babel_template___template_7.4.4.tgz";
       path = fetchurl {
         name = "_babel_template___template_7.4.4.tgz";
@@ -762,11 +770,11 @@
       };
     }
     {
-      name = "_emotion_hash___hash_0.7.3.tgz";
+      name = "_emotion_hash___hash_0.7.4.tgz";
       path = fetchurl {
-        name = "_emotion_hash___hash_0.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.3.tgz";
-        sha1 = "a166882c81c0c6040975dd30df24fae8549bd96f";
+        name = "_emotion_hash___hash_0.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.7.4.tgz";
+        sha1 = "f14932887422c9056b15a8d222a9074a7dfa2831";
       };
     }
     {
@@ -890,51 +898,51 @@
       };
     }
     {
-      name = "_material_ui_core___core_4.4.3.tgz";
+      name = "_material_ui_core___core_4.9.5.tgz";
       path = fetchurl {
-        name = "_material_ui_core___core_4.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/core/-/core-4.4.3.tgz";
-        sha1 = "65665d2c4e9cb84e018774e1471f6d0417f4535e";
+        name = "_material_ui_core___core_4.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/core/-/core-4.9.5.tgz";
+        sha1 = "384869f2840b243241f7881a902f5ffc48360830";
       };
     }
     {
-      name = "_material_ui_icons___icons_4.5.1.tgz";
+      name = "_material_ui_icons___icons_4.9.1.tgz";
       path = fetchurl {
-        name = "_material_ui_icons___icons_4.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.5.1.tgz";
-        sha1 = "6963bad139e938702ece85ca43067688018f04f8";
+        name = "_material_ui_icons___icons_4.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/icons/-/icons-4.9.1.tgz";
+        sha1 = "fdeadf8cb3d89208945b33dbc50c7c616d0bd665";
       };
     }
     {
-      name = "_material_ui_styles___styles_4.4.3.tgz";
+      name = "_material_ui_styles___styles_4.9.0.tgz";
       path = fetchurl {
-        name = "_material_ui_styles___styles_4.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.4.3.tgz";
-        sha1 = "78239177723660093cc9a277db5759c01c693c2a";
+        name = "_material_ui_styles___styles_4.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.9.0.tgz";
+        sha1 = "10c31859f6868cfa9d3adf6b6c3e32c9d676bc76";
       };
     }
     {
-      name = "_material_ui_system___system_4.4.3.tgz";
+      name = "_material_ui_system___system_4.9.3.tgz";
       path = fetchurl {
-        name = "_material_ui_system___system_4.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/system/-/system-4.4.3.tgz";
-        sha1 = "68ca8cf83614255fcd5b9d3a72ce8ee58a43a5c7";
+        name = "_material_ui_system___system_4.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/system/-/system-4.9.3.tgz";
+        sha1 = "ee48990d7941237fdaf21b7b399981d614bb0875";
       };
     }
     {
-      name = "_material_ui_types___types_4.1.1.tgz";
+      name = "_material_ui_types___types_5.0.0.tgz";
       path = fetchurl {
-        name = "_material_ui_types___types_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/types/-/types-4.1.1.tgz";
-        sha1 = "b65e002d926089970a3271213a3ad7a21b17f02b";
+        name = "_material_ui_types___types_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/types/-/types-5.0.0.tgz";
+        sha1 = "26d6259dc6b39f4c2e1e9aceff7a11e031941741";
       };
     }
     {
-      name = "_material_ui_utils___utils_4.4.0.tgz";
+      name = "_material_ui_utils___utils_4.7.1.tgz";
       path = fetchurl {
-        name = "_material_ui_utils___utils_4.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.4.0.tgz";
-        sha1 = "9275421e2798a067850d201212d46f12725828ad";
+        name = "_material_ui_utils___utils_4.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.7.1.tgz";
+        sha1 = "dc16c7f0d2cd02fbcdd5cfe601fd6863ae3cc652";
       };
     }
     {
@@ -3042,14 +3050,6 @@
       };
     }
     {
-      name = "convert_css_length___convert_css_length_2.0.1.tgz";
-      path = fetchurl {
-        name = "convert_css_length___convert_css_length_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/convert-css-length/-/convert-css-length-2.0.1.tgz";
-        sha1 = "90a76bde5bfd24d72881a5b45d02249b2c1d257c";
-      };
-    }
-    {
       name = "convert_source_map___convert_source_map_1.6.0.tgz";
       path = fetchurl {
         name = "convert_source_map___convert_source_map_1.6.0.tgz";
@@ -3282,11 +3282,11 @@
       };
     }
     {
-      name = "css_vendor___css_vendor_2.0.6.tgz";
+      name = "css_vendor___css_vendor_2.0.7.tgz";
       path = fetchurl {
-        name = "css_vendor___css_vendor_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.6.tgz";
-        sha1 = "a205f73d7562e8728c86ef6ce5ee7c7e5eefd71b";
+        name = "css_vendor___css_vendor_2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.7.tgz";
+        sha1 = "4e6d53d953c187981576d6a542acc9fb57174bda";
       };
     }
     {
@@ -3538,14 +3538,6 @@
       };
     }
     {
-      name = "deepmerge___deepmerge_4.0.0.tgz";
-      path = fetchurl {
-        name = "deepmerge___deepmerge_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.0.0.tgz";
-        sha1 = "3e3110ca29205f120d7cb064960a39c3d2087c09";
-      };
-    }
-    {
       name = "default_gateway___default_gateway_4.2.0.tgz";
       path = fetchurl {
         name = "default_gateway___default_gateway_4.2.0.tgz";
@@ -5154,6 +5146,14 @@
       };
     }
     {
+      name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
+      path = fetchurl {
+        name = "hoist_non_react_statics___hoist_non_react_statics_3.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
+        sha1 = "ece0acaf71d62c2969c2ec59feff42a4b1a85b45";
+      };
+    }
+    {
       name = "hosted_git_info___hosted_git_info_2.8.4.tgz";
       path = fetchurl {
         name = "hosted_git_info___hosted_git_info_2.8.4.tgz";
@@ -5906,14 +5906,6 @@
       };
     }
     {
-      name = "is_plain_object___is_plain_object_3.0.0.tgz";
-      path = fetchurl {
-        name = "is_plain_object___is_plain_object_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz";
-        sha1 = "47bfc5da1b5d50d64110806c199359482e75a928";
-      };
-    }
-    {
       name = "is_promise___is_promise_2.1.0.tgz";
       path = fetchurl {
         name = "is_promise___is_promise_2.1.0.tgz";
@@ -6058,14 +6050,6 @@
       };
     }
     {
-      name = "isobject___isobject_4.0.0.tgz";
-      path = fetchurl {
-        name = "isobject___isobject_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz";
-        sha1 = "3f1c9155e73b192022a80819bacd0343711697b0";
-      };
-    }
-    {
       name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
       path = fetchurl {
         name = "isomorphic_fetch___isomorphic_fetch_2.2.1.tgz";
@@ -6546,67 +6530,67 @@
       };
     }
     {
-      name = "jss_plugin_camel_case___jss_plugin_camel_case_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_camel_case___jss_plugin_camel_case_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_camel_case___jss_plugin_camel_case_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.0-alpha.25.tgz";
-        sha1 = "ea4389de47ccf3b4757f76e62cbb2e8b96b7a2c2";
+        name = "jss_plugin_camel_case___jss_plugin_camel_case_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.0.4.tgz";
+        sha1 = "3dedecec1e5bba0bf6141c2c05e2ab11ea4b468d";
       };
     }
     {
-      name = "jss_plugin_default_unit___jss_plugin_default_unit_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_default_unit___jss_plugin_default_unit_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_default_unit___jss_plugin_default_unit_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.0-alpha.25.tgz";
-        sha1 = "df5b39bbc0114146101bb3cf8bc7e281e3d0f454";
+        name = "jss_plugin_default_unit___jss_plugin_default_unit_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.0.4.tgz";
+        sha1 = "df03885de20f20a1fc1c21bdb7c62e865ee400d9";
       };
     }
     {
-      name = "jss_plugin_global___jss_plugin_global_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_global___jss_plugin_global_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_global___jss_plugin_global_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.0.0-alpha.25.tgz";
-        sha1 = "2b6a6a14ef6cdb9994dbadf709e480d5c871b5f6";
+        name = "jss_plugin_global___jss_plugin_global_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.0.4.tgz";
+        sha1 = "412245b56133cc88bec654a70d82d5922619f4c5";
       };
     }
     {
-      name = "jss_plugin_nested___jss_plugin_nested_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_nested___jss_plugin_nested_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_nested___jss_plugin_nested_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.0.0-alpha.25.tgz";
-        sha1 = "b8e29d336e1850047914511681d56330e3ea24ac";
+        name = "jss_plugin_nested___jss_plugin_nested_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.0.4.tgz";
+        sha1 = "4d15ad13995fb6e4125618006473a096d2475d75";
       };
     }
     {
-      name = "jss_plugin_props_sort___jss_plugin_props_sort_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_props_sort___jss_plugin_props_sort_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_props_sort___jss_plugin_props_sort_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.0-alpha.25.tgz";
-        sha1 = "dfaa1a6bf9863ae9593b99bf51cd26caea2fe0ec";
+        name = "jss_plugin_props_sort___jss_plugin_props_sort_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.0.4.tgz";
+        sha1 = "43c880ff8dfcf858f809f663ece5e65a1d945b5a";
       };
     }
     {
-      name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.0-alpha.25.tgz";
-        sha1 = "35350da52334a6031808e197526227434c194277";
+        name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.0.4.tgz";
+        sha1 = "2f4cf4a86ad3eba875bb48cb9f4a7ed35cb354e7";
       };
     }
     {
-      name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.0.0_alpha.25.tgz";
+      name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.0.4.tgz";
       path = fetchurl {
-        name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.0-alpha.25.tgz";
-        sha1 = "bc0c4b6dcb28d4801775cbad70ad9bc7e0c7707b";
+        name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.0.4.tgz";
+        sha1 = "1626ef612a4541cff17cf96815e1740155214ed2";
       };
     }
     {
-      name = "jss___jss_10.0.0_alpha.25.tgz";
+      name = "jss___jss_10.0.4.tgz";
       path = fetchurl {
-        name = "jss___jss_10.0.0_alpha.25.tgz";
-        url  = "https://registry.yarnpkg.com/jss/-/jss-10.0.0-alpha.25.tgz";
-        sha1 = "20a506d8159e3f6bd91e133d54ffd3df0ffd3010";
+        name = "jss___jss_10.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/jss/-/jss-10.0.4.tgz";
+        sha1 = "46ebdde1c40c9a079d64f3334cb88ae28fd90bfd";
       };
     }
     {
@@ -7498,14 +7482,6 @@
       };
     }
     {
-      name = "normalize_scroll_left___normalize_scroll_left_0.2.0.tgz";
-      path = fetchurl {
-        name = "normalize_scroll_left___normalize_scroll_left_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/normalize-scroll-left/-/normalize-scroll-left-0.2.0.tgz";
-        sha1 = "9445d74275f303cc661e113329aefa492f58114c";
-      };
-    }
-    {
       name = "normalize_url___normalize_url_3.3.0.tgz";
       path = fetchurl {
         name = "normalize_url___normalize_url_3.3.0.tgz";
@@ -9250,6 +9226,14 @@
       };
     }
     {
+      name = "react_is___react_is_16.13.0.tgz";
+      path = fetchurl {
+        name = "react_is___react_is_16.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz";
+        sha1 = "0f37c3613c34fe6b37cd7f763a0d6293ab15c527";
+      };
+    }
+    {
       name = "react_is___react_is_16.10.0.tgz";
       path = fetchurl {
         name = "react_is___react_is_16.10.0.tgz";
@@ -9450,6 +9434,14 @@
       };
     }
     {
+      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+      path = fetchurl {
+        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
+        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+      };
+    }
+    {
       name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
       path = fetchurl {
         name = "regenerator_transform___regenerator_transform_0.14.1.tgz";
diff --git a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
index e18842f49aaf..e1cf8ada016a 100644
--- a/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
+++ b/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
@@ -1,4 +1,4 @@
-From 679364e1cd95dc7179dbd3114ec35b282fbcb0af Mon Sep 17 00:00:00 2001
+From 55cb3ba4458bd43588e7921906d091d001130ab0 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
 Date: Thu, 9 Apr 2020 07:20:46 +0100
 Subject: [PATCH] setup.py: relax dependencies
@@ -8,14 +8,14 @@ Content-Transfer-Encoding: 8bit
 
 Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
 ---
- setup.py | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
+ setup.py | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index e0daacd98b..7166f1f228 100755
+index 0c56e89b67..ba04546130 100755
 --- a/setup.py
 +++ b/setup.py
-@@ -32,10 +32,10 @@ PROJECT_URLS = {
+@@ -32,24 +32,24 @@ PROJECT_URLS = {
  PACKAGES = find_packages(exclude=["tests", "tests.*"])
  
  REQUIRES = [
@@ -26,14 +26,16 @@ index e0daacd98b..7166f1f228 100755
 -    "attrs==19.3.0",
 +    "attrs>=19.3.0",
      "bcrypt==3.1.7",
-     "certifi>=2019.11.28",
+-    "certifi>=2020.4.5.1",
++    "certifi>=2019.11.28",
      "ciso8601==2.1.3",
-@@ -43,13 +43,13 @@ REQUIRES = [
+-    "importlib-metadata==1.6.0",
++    "importlib-metadata>=1.5.0",
      "jinja2>=2.11.1",
      "PyJWT==1.7.1",
      # PyJWT has loose dependency. We want the latest one.
--    "cryptography==2.8",
-+    "cryptography>=2.8",
+-    "cryptography==2.9",
++    "cryptography>=2.9",
      "pip>=8.0.3",
      "python-slugify==4.0.0",
      "pytz>=2019.03",
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 0ae33cd48952..28c0322720aa 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -2,7 +2,7 @@
 # Do not edit!
 
 {
-  version = "0.108.7";
+  version = "0.109.0";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
     "acer_projector" = ps: with ps; [ pyserial];
@@ -42,11 +42,13 @@
     "arduino" = ps: with ps; [ ]; # missing inputs: PyMata
     "arest" = ps: with ps; [ ];
     "arlo" = ps: with ps; [ ha-ffmpeg]; # missing inputs: pyarlo
+    "arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg
     "aruba" = ps: with ps; [ pexpect];
     "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
     "asterisk_cdr" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
     "asterisk_mbox" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
     "asuswrt" = ps: with ps; [ ]; # missing inputs: aioasuswrt
+    "atag" = ps: with ps; [ ]; # missing inputs: pyatag
     "aten_pe" = ps: with ps; [ ]; # missing inputs: atenpdu
     "atome" = ps: with ps; [ ]; # missing inputs: pyatome
     "august" = ps: with ps; [ ]; # missing inputs: py-august
@@ -86,7 +88,7 @@
     "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
     "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
     "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
-    "braviatv" = ps: with ps; [ bravia-tv getmac];
+    "braviatv" = ps: with ps; [ bravia-tv];
     "broadlink" = ps: with ps; [ broadlink];
     "brother" = ps: with ps; [ ]; # missing inputs: brother
     "brottsplatskartan" = ps: with ps; [ ]; # missing inputs: brottsplatskartan
@@ -139,7 +141,7 @@
     "datadog" = ps: with ps; [ datadog];
     "ddwrt" = ps: with ps; [ ];
     "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz
-    "decora" = ps: with ps; [ ]; # missing inputs: bluepy decora
+    "decora" = ps: with ps; [ bluepy]; # missing inputs: decora
     "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
     "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro hass-nabucasa netdisco sqlalchemy zeroconf]; # missing inputs: home-assistant-frontend
     "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
@@ -327,7 +329,7 @@
     "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
     "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python];
+    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors]; # missing inputs: base36 fnvhash
     "homekit_controller" = ps: with ps; [ ]; # missing inputs: aiohomekit[IP]
     "homematic" = ps: with ps; [ pyhomematic];
     "homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip
@@ -467,7 +469,7 @@
     "microsoft_face" = ps: with ps; [ aiohttp-cors];
     "microsoft_face_detect" = ps: with ps; [ aiohttp-cors];
     "microsoft_face_identify" = ps: with ps; [ aiohttp-cors];
-    "miflora" = ps: with ps; [ ]; # missing inputs: bluepy miflora
+    "miflora" = ps: with ps; [ bluepy]; # missing inputs: miflora
     "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
@@ -548,6 +550,7 @@
     "openalpr_cloud" = ps: with ps; [ ];
     "openalpr_local" = ps: with ps; [ ];
     "opencv" = ps: with ps; [ numpy]; # missing inputs: opencv-python-headless
+    "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api
     "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
     "openexchangerates" = ps: with ps; [ ];
     "opengarage" = ps: with ps; [ ];
@@ -567,7 +570,7 @@
     "otp" = ps: with ps; [ pyotp];
     "owntracks" = ps: with ps; [ pynacl aiohttp-cors];
     "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
-    "panasonic_viera" = ps: with ps; [ wakeonlan]; # missing inputs: panasonic_viera
+    "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
     "pandora" = ps: with ps; [ pexpect];
     "panel_custom" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
     "panel_iframe" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
@@ -576,6 +579,7 @@
     "persistent_notification" = ps: with ps; [ ];
     "person" = ps: with ps; [ ];
     "philips_js" = ps: with ps; [ ]; # missing inputs: ha-philipsjs
+    "pi4ioe5v9xxxx" = ps: with ps; [ ]; # missing inputs: pi4ioe5v9xxxx
     "pi_hole" = ps: with ps; [ ]; # missing inputs: hole
     "picotts" = ps: with ps; [ ];
     "piglow" = ps: with ps; [ ]; # missing inputs: piglow
@@ -603,7 +607,6 @@
     "pulseaudio_loopback" = ps: with ps; [ ];
     "push" = ps: with ps; [ aiohttp-cors];
     "pushbullet" = ps: with ps; [ pushbullet];
-    "pushetta" = ps: with ps; [ ]; # missing inputs: pushetta
     "pushover" = ps: with ps; [ pushover-complete];
     "pushsafer" = ps: with ps; [ ];
     "pvoutput" = ps: with ps; [ ];
@@ -761,8 +764,8 @@
     "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru
     "synology" = ps: with ps; [ ]; # missing inputs: py-synology
     "synology_chat" = ps: with ps; [ ];
+    "synology_dsm" = ps: with ps; [ ]; # missing inputs: python-synology
     "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
-    "synologydsm" = ps: with ps; [ ]; # missing inputs: python-synology
     "syslog" = ps: with ps; [ ];
     "system_health" = ps: with ps; [ aiohttp-cors];
     "system_log" = ps: with ps; [ aiohttp-cors];
@@ -912,7 +915,6 @@
     "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
     "yi" = ps: with ps; [ aioftp ha-ffmpeg];
     "yr" = ps: with ps; [ xmltodict];
-    "yweather" = ps: with ps; [ yahooweather];
     "zabbix" = ps: with ps; [ ]; # missing inputs: pyzabbix
     "zamg" = ps: with ps; [ ];
     "zengge" = ps: with ps; [ ]; # missing inputs: zengge
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index d04c2fa5c96a..03805344ae66 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -67,7 +67,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.108.7";
+  hassVersion = "0.109.0";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -86,7 +86,7 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "home-assistant";
     rev = version;
-    sha256 = "0nk1615ms6nlmhgmsgsknc6m7b19baan8m4kr4s97njngiardxm7";
+    sha256 = "1b5y464yhngivxkz3cg2b7j2ssawy7fqr3si5pdmqkgz1dbqihhn";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix
index 6ca763768eaa..bcb770b8dc6e 100644
--- a/pkgs/servers/home-assistant/frontend.nix
+++ b/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20200418.0";
+  version = "20200427.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12px8znc6nw5ndg4f28lvfpqsnzi00b5qgpdj9jwny0fss4aglnb";
+    sha256 = "0ch669asyjqbh73y4a170j86hw9in2fw3xmxaxwh5r6sgx28k4v7";
   };
 
   # no Python tests implemented
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index 1467c3b528c6..f802485d6c62 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -80,7 +80,7 @@ def parse_components(version: str = "master"):
 
 # Recursively get the requirements of a component and its dependencies
 def get_reqs(components, component):
-    requirements = set(components[component]["requirements"])
+    requirements = set(components[component].get("requirements", []))
     deps = components[component].get("dependencies", [])
     for dependency in deps:
         requirements.update(get_reqs(components, dependency))
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index 1e3ddb4ad8f1..0779a31f1064 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, which
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP72 ? false, php72base
-, withPHP73 ? true, php73base
+, withPHP72 ? false, php72
+, withPHP73 ? true, php73
 , withPerl528 ? false, perl528
 , withPerl530 ? true, perl530
 , withPerldevel ? false, perldevel
@@ -18,16 +18,16 @@ with stdenv.lib;
 
 let
   phpConfig = {
-    config.php.embed = true;
-    config.php.apxs2 = false;
-    config.php.systemd = false;
-    config.php.phpdbg = false;
-    config.php.cgi = false;
-    config.php.fpm = false;
+    embedSupport = true;
+    apxs2Support = false;
+    systemdSupport = false;
+    phpdbgSupport = false;
+    cgiSupport = false;
+    fpmSupport = false;
   };
 
-  php72-unit = php72base.override phpConfig;
-  php73-unit = php73base.override phpConfig;
+  php72-unit = php72.override phpConfig;
+  php73-unit = php73.override phpConfig;
 in stdenv.mkDerivation rec {
   version = "1.16.0";
   pname = "unit";
@@ -71,8 +71,8 @@ in stdenv.mkDerivation rec {
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=${python2}/bin/python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=${python3}/bin/python3-config  --lib-path=${python3}/lib"}
-    ${optionalString withPHP72      "./configure php    --module=php72    --config=${php72-unit.dev}/bin/php-config    --lib-path=${php72-unit}/lib"}
-    ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.dev}/bin/php-config    --lib-path=${php73-unit}/lib"}
+    ${optionalString withPHP72      "./configure php    --module=php72    --config=${php72-unit.unwrapped.dev}/bin/php-config --lib-path=${php72-unit}/lib"}
+    ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
     ${optionalString withPerl528    "./configure perl   --module=perl528  --perl=${perl528}/bin/perl"}
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}
diff --git a/pkgs/servers/roundcube/default.nix b/pkgs/servers/roundcube/default.nix
index 939424ff2bfd..a1dc25e6e28e 100644
--- a/pkgs/servers/roundcube/default.nix
+++ b/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "1gsl9rpdkv388i6zvciladhb15fw94a8xjyh4ai1664nkwl51wi4";
+    sha256 = "1my726p0wmsn21nbdsjx02h6hnbh8nidzipzdy0gk0qgda1j729b";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/pkgs/servers/uftp/default.nix b/pkgs/servers/uftp/default.nix
index 13efb08ec6a8..02607155d486 100644
--- a/pkgs/servers/uftp/default.nix
+++ b/pkgs/servers/uftp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "uftp";
-  version = "4.10.2";
+  version = "5.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/uftp-multicast/source-tar/uftp-${version}.tar.gz";
-    sha256 = "01c54mqz37157dfq47zjqvfy7v98vbi9zn9mzrxszsz0gyq6mazc";
+    sha256 = "1q08schd765fsm9647ac4ic2x70ys2x48mqz97mibdi4bbm72bsn";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix
index 29b807f17920..0f0d2c23e4c4 100644
--- a/pkgs/servers/uwsgi/default.nix
+++ b/pkgs/servers/uwsgi/default.nix
@@ -8,8 +8,8 @@
 }:
 
 let php-embed = php.override {
-      config.php.embed = true;
-      config.php.apxs2 = false;
+      embedSupport = true;
+      apxs2Support = false;
     };
 
     pythonPlugin = pkg : lib.nameValuePair "python${if pkg.isPy2 then "2" else "3"}" {
diff --git a/pkgs/shells/bash/bash-completion/default.nix b/pkgs/shells/bash/bash-completion/default.nix
index c223985c2fb8..8463b1750d16 100644
--- a/pkgs/shells/bash/bash-completion/default.nix
+++ b/pkgs/shells/bash/bash-completion/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   # - ignore test_screen because it assumes vt terminals exist
   checkPhase = ''
     pytest . \
-      ${stdenv.lib.optionalString (stdenv.hostPlatform.isAarch64) "--ignore=test/t/test_gcc.py"} \
+      ${stdenv.lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) "--ignore=test/t/test_gcc.py"} \
       --ignore=test/t/test_chsh.py \
       --ignore=test/t/test_ether_wake.py \
       --ignore=test/t/test_ifdown.py \
diff --git a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 60e58bbcfb9d..169173a42e87 100644
--- a/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "1hlad5rf6piillmc83bkf03bbw78ylhhfxpxlkdc30ai9y5dpfvv";
+    sha256 = "04j37qmgzj62gixysj3di9dccfib4hx1c4ld9kcms3ag7k403bgj";
   };
 
   patches = [
diff --git a/pkgs/tools/backup/monolith/default.nix b/pkgs/tools/backup/monolith/default.nix
index 5d086abf7807..046fe130ffb8 100644
--- a/pkgs/tools/backup/monolith/default.nix
+++ b/pkgs/tools/backup/monolith/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.2.2";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08xbpn6kdfiyvz5pwx9hkzbgb40z6dicmiry7frclw0aibal9avi";
+    sha256 = "0am992dhqv0vpk4zsc9wwnbzhpdx98wm9dxi89bq2yr3l77lml3d";
   };
 
-  cargoSha256 = "10zwyg54f05m6ldpnchqzxjkb6rlpcl80crdnk8s6wkf18qny4i3";
+  cargoSha256 = "03nd8pzrd66rv12l7qr9i4kdrdr8hk1mz8ihvd982cjd2dlisipd";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 5d31570aacd5..7ec0d533c0d5 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     # install shell completion files
-    OUT_DIR=target/release/build/broot-*/out
+    OUT_DIR=$releaseDir/build/broot-*/out
 
     installShellCompletion --bash $OUT_DIR/{br,broot}.bash
     installShellCompletion --fish $OUT_DIR/{br,broot}.fish
diff --git a/pkgs/tools/misc/fd/default.nix b/pkgs/tools/misc/fd/default.nix
index 5cc1c12f64c3..ab94a8aa6b54 100644
--- a/pkgs/tools/misc/fd/default.nix
+++ b/pkgs/tools/misc/fd/default.nix
@@ -18,9 +18,8 @@ rustPlatform.buildRustPackage rec {
   preFixup = ''
     installManPage "$src/doc/fd.1"
 
-    (cd target/release/build/fd-find-*/out
-    installShellCompletion fd.{bash,fish}
-    installShellCompletion --zsh _fd)
+    installShellCompletion $releaseDir/build/fd-find-*/out/fd.{bash,fish}
+    installShellCompletion --zsh $releaseDir/build/fd-find-*/out/_fd
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/lsd/default.nix b/pkgs/tools/misc/lsd/default.nix
index 6291ad013ea5..73dcbd3bc3cb 100644
--- a/pkgs/tools/misc/lsd/default.nix
+++ b/pkgs/tools/misc/lsd/default.nix
@@ -19,7 +19,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
-    installShellCompletion target/release/build/lsd-*/out/{_lsd,lsd.{bash,fish}}
+    installShellCompletion $releaseDir/build/lsd-*/out/{_lsd,lsd.{bash,fish}}
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/shadowenv/default.nix b/pkgs/tools/misc/shadowenv/default.nix
index a464ea638bda..7c9352d33100 100644
--- a/pkgs/tools/misc/shadowenv/default.nix
+++ b/pkgs/tools/misc/shadowenv/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowenv";
-  version = "2.0.0";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = pname;
     rev = version;
-    sha256 = "1fjqm4qr85wb0i3vazp0w74izfzvkycdii7dlpdp5zs8jgb35pdh";
+    sha256 = "1x5i5km6wblqbc0fibdjdlqkamqswxwhy8p6cbfz2nvcia7fgsf1";
   };
 
-  cargoSha256 = "1n8qh730nhdmpm08mm2ppcl3nkcgm50cyz9q5h6dlzq4bv4rijp4";
+  cargoSha256 = "1hrsbd6025sfgnwr7smp43yzi7w2lfyfbdxhapgizrpwbq8y7xzd";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -20,6 +20,9 @@ rustPlatform.buildRustPackage rec {
   postInstall = ''
     installManPage man/man1/shadowenv.1
     installManPage man/man5/shadowlisp.5
+    installShellCompletion --bash sh/completions/shadowenv.bash
+    installShellCompletion --fish sh/completions/shadowenv.fish
+    installShellCompletion --zsh sh/completions/_shadowenv
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index c8b7dadf44dc..4d17768b8dcd 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -21,7 +21,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tmux";
-  version = "3.1";
+  version = "3.1a";
 
   outputs = [ "out" "man" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "tmux";
     repo = "tmux";
     rev = version;
-    sha256 = "1jgxal6jzzannh7hb3617r6g5p9yczl6a78m4kjnf3cxxm4jdaxz";
+    sha256 = "1j85d5mj7zf3k17wsrm45m79ygc6dljc4as3crvp12r45k8xg9k6";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/networking/frp/default.nix b/pkgs/tools/networking/frp/default.nix
index f44e2208646c..438740600c7b 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hj3xy7ihwl66hyxc1m8k3fwgz5jyx1bd32f80d7266klhjqf6nw";
+    sha256 = "1z914p20n3i1bf4hx5iq2fylx1s49knb70cbg53ji2n7nrm1q33r";
   };
 
   modSha256 = "1v90w5grc0vjpcp0m56d73zi0qnbswgz1rcvcwrjfa3rwqhigbal";
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index aa1e004d1afc..c103637c6858 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.4.1";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "0q2ik7fj5k9i76js4ijyxbgrwqff437lass0sd5if2r40rqh0as0";
+    sha256 = "1i9chd8ks1q4g5pyscsir6pw4kahkx3k8ckzbi8j3gr6jz1qzzsg";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/networking/tox-node/default.nix b/pkgs/tools/networking/tox-node/default.nix
index 1124c2ab5575..feeceef81f45 100644
--- a/pkgs/tools/networking/tox-node/default.nix
+++ b/pkgs/tools/networking/tox-node/default.nix
@@ -24,7 +24,7 @@ buildRustPackage rec {
   installPhase = ''
     runHook preInstall
 
-    install -D target/release/tox-node $out/bin/tox-node
+    install -D $releaseDir/tox-node $out/bin/tox-node
 
     runHook postInstall
   '';
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix
index 623c8e2065c7..c6e8b4803ccf 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/tools/package-management/cargo-deb/default.nix
@@ -6,18 +6,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.23.2";
+  version = "1.24.0";
 
   src = fetchFromGitHub {
     owner = "mmstick";
     repo = pname;
-    rev = "367910e0020de93f45c175c92a37a53ee401978f";
-    sha256 = "1s0xv818rlafdzpb70c1ldv5iq3hh2jxj7g3l6p7v20q1wx0nnvv";
+    rev = "b49351f6770aa7aeb053dd1d4a02d6b086caad2a";
+    sha256 = "1hs96yv0awgi7ggpxp7k3n21jpv642sm0529b21hs9ib6kp4vs8s";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0ffzq2gm0f56vyfkmdzxfs5z1xsdj2kcsyc1fdrk4k1cylqn2f47";
+  cargoSha256 = "1vqnnqn6rzkdi239bh3lk7gaxr7w6v3c4ws4ya1ah04g6v9hkzlw";
 
   meta = with lib; {
     description = "Generate Debian packages from information in Cargo.toml";
diff --git a/pkgs/tools/package-management/emplace/default.nix b/pkgs/tools/package-management/emplace/default.nix
index bb91697ab57c..389d1feb346d 100644
--- a/pkgs/tools/package-management/emplace/default.nix
+++ b/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "0.2.15";
+  version = "0.2.19";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h1z18m504kflzv9wcybkgc4xr5w9l9d7qsjri0an57lxv6dpv0f";
+    sha256 = "0vw0axnb7gil6lr72rixp4v3pspi0jq99x8h954mdcff2jr031x5";
   };
 
-  cargoSha256 = "1wfxy4py2xwf1m0i52jq1f9xgzc7v5m55crl0xbp8f0raflksaxk";
+  cargoSha256 = "118rxiwvi9k6jq5y0k7yn4w9zlb0fd6xdcyrv38ipr8qrj16cjrq";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/pkgs/tools/system/colorls/Gemfile.lock b/pkgs/tools/system/colorls/Gemfile.lock
index ebbcd0fdb037..1b84a550e482 100644
--- a/pkgs/tools/system/colorls/Gemfile.lock
+++ b/pkgs/tools/system/colorls/Gemfile.lock
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     clocale (0.0.4)
-    colorls (1.2.0)
+    colorls (1.3.3)
       clocale (~> 0)
       filesize (~> 0)
       manpages (~> 0)
diff --git a/pkgs/tools/system/colorls/default.nix b/pkgs/tools/system/colorls/default.nix
index 4401d841ff61..8243590cd7d5 100644
--- a/pkgs/tools/system/colorls/default.nix
+++ b/pkgs/tools/system/colorls/default.nix
@@ -12,7 +12,7 @@ bundlerApp {
     description = "Prettified LS";
     homepage    = "https://github.com/athityakumar/colorls";
     license     = with licenses; mit;
-    maintainers = with maintainers; [ lukebfox nicknovitski ];
+    maintainers = with maintainers; [ lukebfox nicknovitski cbley ];
     platforms   = ruby.meta.platforms;
   };
 }
diff --git a/pkgs/tools/system/colorls/gemset.nix b/pkgs/tools/system/colorls/gemset.nix
index e7264a895a2c..c16f87f457ff 100644
--- a/pkgs/tools/system/colorls/gemset.nix
+++ b/pkgs/tools/system/colorls/gemset.nix
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcrig88ipzj43lnkrb5qmimdrml4lx15rcrhr6m2hxb0pks8932";
+      sha256 = "07rvm3g65slnqzal718qwfmgsjnkysx00jn8dnv96317yx0mxfx6";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.3";
   };
   filesize = {
     groups = ["default"];
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index c794b4ba33c7..9eba451c54a3 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -30,9 +30,9 @@ rustPlatform.buildRustPackage rec {
   ++ (stdenv.lib.optional stdenv.isDarwin Security);
 
   preFixup = ''
-    (cd target/release/build/ripgrep-*/out
-    installManPage rg.1
-    installShellCompletion rg.{bash,fish})
+    installManPage $releaseDir/build/ripgrep-*/out/rg.1
+
+    installShellCompletion $releaseDir/build/ripgrep-*/out/rg.{bash,fish}
     installShellCompletion --zsh "$src/complete/_rg"
   '';
 
diff --git a/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix b/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
index 31ea1cb2a946..2c2444de4e52 100644
--- a/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
+++ b/pkgs/tools/virtualization/google-compute-engine-oslogin/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , fetchFromGitHub
 , curl
 , json_c
@@ -8,22 +9,20 @@
 
 stdenv.mkDerivation rec {
   pname = "google-compute-engine-oslogin";
-  version = "1.5.3";
-  # from packages/google-compute-engine-oslogin/packaging/debian/changelog
+  version = "20200325.00";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
-    repo = "compute-image-packages";
-    rev = "20190522";
-    sha256 = "16jbbrnz49g843h813r408dbvfa2hicf8canxwbfxr2kzhv7ycmm";
+    repo = "guest-oslogin";
+    rev = version;
+    sha256 = "03hk95pgzcgy6ginp8zdy0fbk88m6n65qq22jq490z1xwbjffm8r";
   };
-  sourceRoot = "source/packages/google-compute-engine-oslogin";
 
   postPatch = ''
     # change sudoers dir from /var/google-sudoers.d to /run/google-sudoers.d (managed through systemd-tmpfiles)
-    substituteInPlace pam_module/pam_oslogin_admin.cc --replace /var/google-sudoers.d /run/google-sudoers.d
+    substituteInPlace src/pam/pam_oslogin_admin.cc --replace /var/google-sudoers.d /run/google-sudoers.d
     # fix "User foo not allowed because shell /bin/bash does not exist"
-    substituteInPlace compat.h --replace /bin/bash ${bashInteractive}/bin/bash
+    substituteInPlace src/include/compat.h --replace /bin/bash ${bashInteractive}/bin/bash
   '';
 
   buildInputs = [ curl.dev pam ];
@@ -31,15 +30,15 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE="-I${json_c.dev}/include/json-c";
   NIX_CFLAGS_LINK="-L${json_c}/lib";
 
-  installPhase = ''
-    mkdir -p $out/{bin,lib}
-
-    install -Dm755 libnss_cache_google-compute-engine-oslogin-${version}.so $out/lib/libnss_cache_oslogin.so.2
-    install -Dm755 libnss_google-compute-engine-oslogin-${version}.so $out/lib/libnss_oslogin.so.2
-
-    install -Dm755 pam_oslogin_admin.so pam_oslogin_login.so $out/lib
-    install -Dm755 google_{oslogin_nss_cache,authorized_keys} $out/bin
-  '';
+  makeFlags = [
+    "VERSION=${version}"
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX=/"
+    "BINDIR=/bin"
+    "LIBDIR=/lib"
+    "PAMDIR=/lib"
+    "MANDIR=/share/man"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 5248e8d75de6..4837995d11a7 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -339,48 +339,50 @@ mapAliases ({
   pg_tmp = ephemeralpg; # added 2018-01-16
 
   php-embed = throw ''
-    php*-embed has been dropped, you can build the same package by using
-     something similar with this following snippet:
-    (php74.override { config.php.embed = true; config.php.apxs2 = false; })
+    php*-embed has been dropped, you can build something similar
+    with the following snippet:
+    php74.override { embedSupport = true; apxs2Support = false; }
   ''; # added 2020-04-01
   php72-embed = php-embed; # added 2020-04-01
   php73-embed = php-embed; # added 2020-04-01
   php74-embed = php-embed; # added 2020-04-01
 
   phpPackages-embed = throw ''
-    php*Packages-embed has been dropped, you can build the same package by using
-     something similar with this following snippet:
-    (php74.override { config.php.embed = true; config.php.apxs2 = false; }).packages
+    php*Packages-embed has been dropped, you can build something
+    similar with the following snippet:
+    (php74.override { embedSupport = true; apxs2Support = false; }).packages
   ''; # added 2020-04-01
   php74Packages-embed = phpPackages-embed;
   php73Packages-embed = phpPackages-embed;
   php72Packages-embed = phpPackages-embed;
 
   php-unit = throw ''
-    php*-unit has been dropped, you can build the same package by using
-     something similar with this following snippet:
-    (php74.override {
-      config.php.embed = true;
-      config.php.apxs2 = false;
-      config.php.systemd = false;
-      config.php.phpdbg = false;
-      config.php.cgi = false;
-      config.php.fpm = false; })
+    php*-unit has been dropped, you can build something similar with
+    the following snippet:
+    php74.override {
+      embedSupport = true;
+      apxs2Support = false;
+      systemdSupport = false;
+      phpdbgSupport = false;
+      cgiSupport = false;
+      fpmSupport = false;
+    }
   ''; # added 2020-04-01
   php72-unit = php-unit; # added 2020-04-01
   php73-unit = php-unit; # added 2020-04-01
   php74-unit = php-unit; # added 2020-04-01
 
   phpPackages-unit = throw ''
-    php*Packages-unit has been dropped, you can build the same package by using
-     something similar with this following snippet:
+    php*Packages-unit has been dropped, you can build something
+     similar with this following snippet:
     (php74.override {
-      config.php.embed = true;
-      config.php.apxs2 = false;
-      config.php.systemd = false;
-      config.php.phpdbg = false;
-      config.php.cgi = false;
-      config.php.fpm = false; }).packages
+      embedSupport = true;
+      apxs2Support = false;
+      systemdSupport = false;
+      phpdbgSupport = false;
+      cgiSupport = false;
+      fpmSupport = false;
+    }).packages
   ''; # added 2020-04-01
   php74Packages-unit = phpPackages-unit;
   php73Packages-unit = phpPackages-unit;
@@ -575,6 +577,7 @@ mapAliases ({
   transporter = throw "transporter has been removed. It was archived upstream, so it's considered abandoned.";
   truecrypt = veracrypt; # added 2018-10-24
   tshark = wireshark-cli; # added 2018-04-25
+  uberwriter = apostrophe; # added 2020-04-23
   ubootBeagleboneBlack = ubootAmx335xEVM; # added 2020-01-21
   ucsFonts = ucs-fonts; # added 2016-07-15
   ultrastardx-beta = ultrastardx; # added 2017-08-12
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 160626492df0..2a8583ea0a68 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4784,10 +4784,14 @@ in
   nodejs-slim-13_x = callPackage ../development/web/nodejs/v13.nix {
     enableNpm = false;
   };
+  nodejs-14_x = callPackage ../development/web/nodejs/v14.nix { };
+  nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
+    enableNpm = false;
+  };
 
   # Update this when adding the newest nodejs major version!
-  nodejs_latest = nodejs-13_x;
-  nodejs-slim_latest = nodejs-slim-13_x;
+  nodejs_latest = nodejs-14_x;
+  nodejs-slim_latest = nodejs-slim-14_x;
 
   nodePackages_13_x = dontRecurseIntoAttrs (callPackage ../development/node-packages/default-v13.nix {
     nodejs = pkgs.nodejs-13_x;
@@ -5520,6 +5524,8 @@ in
 
   nylon = callPackage ../tools/networking/nylon { };
 
+  nym = callPackage ../applications/networking/nym { };
+
   nzbget = callPackage ../tools/networking/nzbget { };
 
   oathToolkit = callPackage ../tools/security/oath-toolkit { };
@@ -5963,7 +5969,8 @@ in
 
   podiff = callPackage ../tools/text/podiff { };
 
-  podman = callPackage ../applications/virtualization/podman { };
+  podman = callPackage ../applications/virtualization/podman/wrapper.nix { };
+  podman-unwrapped = callPackage ../applications/virtualization/podman { };
 
   podman-compose = python3Packages.callPackage ../applications/virtualization/podman-compose {};
 
@@ -9032,6 +9039,9 @@ in
   cargo-crev = callPackage ../development/tools/rust/cargo-crev {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-deny = callPackage ../development/tools/rust/cargo-deny {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
   cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
   cargo-geiger = callPackage ../development/tools/rust/cargo-geiger {
@@ -9455,9 +9465,9 @@ in
   php73Extensions = recurseIntoAttrs php73.extensions;
   php74Extensions = recurseIntoAttrs php74.extensions;
 
-  inherit (callPackages ../development/interpreters/php {
+  inherit (callPackage ../development/interpreters/php {
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-  }) php74 php73 php72 php74base php73base php72base;
+  }) php74 php73 php72;
 
   picoc = callPackage ../development/interpreters/picoc {};
 
@@ -9934,6 +9944,8 @@ in
   bison = callPackage ../development/tools/parsing/bison { };
   yacc = bison; # TODO: move to aliases.nix
 
+  black = with python3Packages; toPythonApplication black;
+
   blackmagic = callPackage ../development/tools/misc/blackmagic { };
 
   bloaty = callPackage ../development/tools/bloaty { };
@@ -19538,6 +19550,8 @@ in
 
   gcalcli = callPackage ../applications/misc/gcalcli { };
 
+  havoc = callPackage ../applications/misc/havoc { };
+
   vcal = callPackage ../applications/misc/vcal { };
 
   gcolor2 = callPackage ../applications/graphics/gcolor2 { };
@@ -20249,6 +20263,8 @@ in
 
   kubeseal = callPackage ../applications/networking/cluster/kubeseal { };
 
+  kubernix = callPackage ../applications/networking/cluster/kubernix { };
+
   kubectl = callPackage ../applications/networking/cluster/kubectl { };
 
   kubeless = callPackage ../applications/networking/cluster/kubeless { };
@@ -20610,6 +20626,7 @@ in
 
   monotone = callPackage ../applications/version-management/monotone {
     lua = lua5;
+    botan = botan.override (x: { openssl = null; });
   };
 
   monotoneViz = callPackage ../applications/version-management/monotone-viz {
@@ -24088,6 +24105,7 @@ in
     timepp = callPackage ../desktops/gnome-3/extensions/timepp { };
     topicons-plus = callPackage ../desktops/gnome-3/extensions/topicons-plus { };
     window-corner-preview = callPackage ../desktops/gnome-3/extensions/window-corner-preview { };
+    window-is-ready-remover = callPackage ../desktops/gnome-3/extensions/window-is-ready-remover { };
     workspace-matrix = callPackage ../desktops/gnome-3/extensions/workspace-matrix { };
 
     nohotcorner = throw "gnomeExtensions.nohotcorner removed since 2019-10-09: Since 3.34, it is a part of GNOME Shell configurable through GNOME Tweaks.";
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 0cda058459df..14f21d1bd33e 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, pkgs, fetchgit, php, phpWithExtensions, autoconf, pkgconfig, re2c
+{ stdenv, lib, pkgs, fetchgit, php, autoconf, pkgconfig, re2c
 , gettext, bzip2, curl, libxml2, openssl, gmp, icu, oniguruma, libsodium
 , html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
@@ -8,7 +8,8 @@
 
 let
   buildPecl = import ../build-support/build-pecl.nix {
-    inherit php lib;
+    php = php.unwrapped;
+    inherit lib;
     inherit (pkgs) stdenv autoreconfHook fetchurl re2c;
   };
 
@@ -43,7 +44,7 @@ in
       installPhase = ''
         mkdir -p $out/bin
         install -D $src $out/libexec/box/box.phar
-        makeWrapper ${phpWithExtensions}/bin/php $out/bin/box \
+        makeWrapper ${php}/bin/php $out/bin/box \
           --add-flags "-d phar.readonly=0 $out/libexec/box/box.phar"
       '';
 
@@ -51,17 +52,17 @@ in
         description = "An application for building and managing Phars";
         license = licenses.mit;
         homepage = "https://box-project.github.io/box2/";
-        maintainers = with maintainers; [ jtojnar ];
+        maintainers = with maintainers; [ jtojnar ] ++ teams.php.members;
       };
     };
 
     composer = mkDerivation rec {
-      version = "1.9.3";
+      version = "1.10.5";
       pname = "composer";
 
       src = pkgs.fetchurl {
         url = "https://getcomposer.org/download/${version}/composer.phar";
-        sha256 = "VRZVwvyB9BBlCPQrvEsk6r00sCKxO8Hn2WQr9IPQp9Q=";
+        sha256 = "0a9iwhd7ijm8gkp3zadxza0xb6xwa5ps0d16pz4mz2p21gfzvwym";
       };
 
       dontUnpack = true;
@@ -71,7 +72,7 @@ in
       installPhase = ''
         mkdir -p $out/bin
         install -D $src $out/libexec/composer/composer.phar
-        makeWrapper ${phpWithExtensions}/bin/php $out/bin/composer \
+        makeWrapper ${php}/bin/php $out/bin/composer \
           --add-flags "$out/libexec/composer/composer.phar" \
           --prefix PATH : ${pkgs.lib.makeBinPath [ pkgs.unzip ]}
       '';
@@ -80,17 +81,17 @@ in
         description = "Dependency Manager for PHP";
         license = licenses.mit;
         homepage = "https://getcomposer.org/";
-        maintainers = with maintainers; [ globin offline ];
+        maintainers = with maintainers; [ offline ] ++ teams.php.members;
       };
     };
 
     php-cs-fixer = mkDerivation rec {
-      version = "2.16.1";
+      version = "2.16.3";
       pname = "php-cs-fixer";
 
       src = pkgs.fetchurl {
         url = "https://github.com/FriendsOfPHP/PHP-CS-Fixer/releases/download/v${version}/php-cs-fixer.phar";
-        sha256 = "1dq1nhy666zg6d4fkfsjwhj1vwh1ncap2c9ljplxv98a9mm6fk68";
+        sha256 = "195j61qbgbdn5xi0l6030mklji8m7fan2kf3446a1m2n4df3f5hb";
       };
 
       phases = [ "installPhase" ];
@@ -107,7 +108,7 @@ in
         description = "A tool to automatically fix PHP coding standards issues";
         license = licenses.mit;
         homepage = "http://cs.sensiolabs.org/";
-        maintainers = with maintainers; [ jtojnar ];
+        maintainers = with maintainers; [ jtojnar ] ++ teams.php.members;
       };
     };
 
@@ -144,17 +145,17 @@ in
         description = "This tool check syntax of PHP files faster than serial check with fancier output";
         license = licenses.bsd2;
         homepage = "https://github.com/JakubOnderka/PHP-Parallel-Lint";
-        maintainers = with maintainers; [ jtojnar ];
+        maintainers = with maintainers; [ jtojnar ] ++ teams.php.members;
       };
     };
 
     phpcbf = mkDerivation rec {
-      version = "3.5.4";
+      version = "3.5.5";
       pname = "phpcbf";
 
       src = pkgs.fetchurl {
         url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcbf.phar";
-        sha256 = "18x7fk59l821pivw1i2r868y78qgs0qk47b9il1smwi6plwyyflr";
+        sha256 = "0hgagn70gl46migm6zpwcr39dxal07f5cdpnasrafgz5vq0gwr3g";
       };
 
       phases = [ "installPhase" ];
@@ -163,7 +164,7 @@ in
       installPhase = ''
         mkdir -p $out/bin
         install -D $src $out/libexec/phpcbf/phpcbf.phar
-        makeWrapper ${phpWithExtensions}/bin/php $out/bin/phpcbf \
+        makeWrapper ${php}/bin/php $out/bin/phpcbf \
           --add-flags "$out/libexec/phpcbf/phpcbf.phar"
       '';
 
@@ -171,17 +172,17 @@ in
         description = "PHP coding standard beautifier and fixer";
         license = licenses.bsd3;
         homepage = "https://squizlabs.github.io/PHP_CodeSniffer/";
-        maintainers = with maintainers; [ cmcdragonkai etu ];
+        maintainers = with maintainers; [ cmcdragonkai ] ++ teams.php.members;
       };
     };
 
     phpcs = mkDerivation rec {
-      version = "3.5.4";
+      version = "3.5.5";
       pname = "phpcs";
 
       src = pkgs.fetchurl {
         url = "https://github.com/squizlabs/PHP_CodeSniffer/releases/download/${version}/phpcs.phar";
-        sha256 = "1lrybdxxig3yqd3i3nwji5jjn377p50sbpm4s4852dlsxz9qnlgs";
+        sha256 = "0jl038l55cmzn5ml61qkv4z1w4ri0h3v7h00pcb04xhz3gznlbsa";
       };
 
       phases = [ "installPhase" ];
@@ -190,7 +191,7 @@ in
       installPhase = ''
         mkdir -p $out/bin
         install -D $src $out/libexec/phpcs/phpcs.phar
-        makeWrapper ${phpWithExtensions}/bin/php $out/bin/phpcs \
+        makeWrapper ${php}/bin/php $out/bin/phpcs \
           --add-flags "$out/libexec/phpcs/phpcs.phar"
       '';
 
@@ -198,17 +199,17 @@ in
         description = "PHP coding standard tool";
         license = licenses.bsd3;
         homepage = "https://squizlabs.github.io/PHP_CodeSniffer/";
-        maintainers = with maintainers; [ javaguirre etu ];
+        maintainers = with maintainers; [ javaguirre ] ++ teams.php.members;
       };
     };
 
     phpstan = mkDerivation rec {
-      version = "0.12.18";
+      version = "0.12.19";
       pname = "phpstan";
 
       src = pkgs.fetchurl {
         url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-        sha256 = "0xf0q2z6rhpnbys53si05mddfyjn3wx5wc8zx5y6dv5fzw6z7rch";
+        sha256 = "15fz7rixi9s46qqxpj26349aky7wxqnzmfsnwlh1f2p4jsfd85ki";
       };
 
       phases = [ "installPhase" ];
@@ -217,32 +218,32 @@ in
       installPhase = ''
         mkdir -p $out/bin
         install -D $src $out/libexec/phpstan/phpstan.phar
-        makeWrapper ${phpWithExtensions}/bin/php $out/bin/phpstan \
+        makeWrapper ${php}/bin/php $out/bin/phpstan \
           --add-flags "$out/libexec/phpstan/phpstan.phar"
       '';
 
       meta = with pkgs.lib; {
         description = "PHP Static Analysis Tool";
         longDescription = ''
-        PHPStan focuses on finding errors in your code without actually running
-        it. It catches whole classes of bugs even before you write tests for the
-        code. It moves PHP closer to compiled languages in the sense that the
-        correctness of each line of the code can be checked before you run the
-        actual line.
-      '';
+          PHPStan focuses on finding errors in your code without actually
+          running it. It catches whole classes of bugs even before you write
+          tests for the code. It moves PHP closer to compiled languages in the
+          sense that the correctness of each line of the code can be checked
+          before you run the actual line.
+        '';
         license = licenses.mit;
         homepage = "https://github.com/phpstan/phpstan";
-        maintainers = with maintainers; [ etu ];
+        maintainers = teams.php.members;
       };
     };
 
     psalm = mkDerivation rec {
-      version = "3.9.3";
+      version = "3.11.2";
       pname = "psalm";
 
       src = pkgs.fetchurl {
         url = "https://github.com/vimeo/psalm/releases/download/${version}/psalm.phar";
-        sha256 = "KHm2n06y/yxN5B2rCVxT5ja7HxkyxAMsjZ5HLb3xr4M=";
+        sha256 = "1ani0907whqy2ycr01sjlvrmwps4dg5igim8z1qyv8grhwvw6gb0";
       };
 
       phases = [ "installPhase" ];
@@ -259,16 +260,17 @@ in
         description = "A static analysis tool for finding errors in PHP applications";
         license = licenses.mit;
         homepage = "https://github.com/vimeo/psalm";
+        maintainers = teams.php.members;
       };
     };
 
     psysh = mkDerivation rec {
-      version = "0.9.12";
+      version = "0.10.3";
       pname = "psysh";
 
       src = pkgs.fetchurl {
         url = "https://github.com/bobthecow/psysh/releases/download/v${version}/psysh-v${version}.tar.gz";
-        sha256 = "0bzmc94li481xk81gv460ipq9zl03skbnq8m3rnw34i2c04hxczc";
+        sha256 = "0glply451fy0g7zbasyp350qvmk2aglrlcrcdd7w0igylgwfkg71";
       };
 
       phases = [ "installPhase" ];
@@ -285,7 +287,7 @@ in
         description = "PsySH is a runtime developer console, interactive debugger and REPL for PHP.";
         license = licenses.mit;
         homepage = "https://psysh.org/";
-        maintainers = with maintainers; [ caugner ];
+        maintainers = with maintainers; [ caugner ] ++ teams.php.members;
       };
     };
   };
@@ -308,6 +310,8 @@ in
       checkFlagsArray = ["REPORT_EXIT_STATUS=1" "NO_INTERACTION=1"];
       makeFlags = [ "phpincludedir=$(dev)/include" ];
       outputs = [ "out" "dev" ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     apcu_bc = buildPecl {
@@ -320,6 +324,8 @@ in
         php.extensions.apcu
         pcre'
       ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     ast = buildPecl {
@@ -327,6 +333,8 @@ in
       pname = "ast";
 
       sha256 = "16c5isldm4csjbcvz1qk2mmrhgvh24sxsp6w6f5a37xpa3vciawp";
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     couchbase = buildPecl rec {
@@ -374,6 +382,7 @@ in
         '')
       ];
 
+      meta.maintainers = lib.teams.php.members;
       meta.broken = isPhp74; # Build error
     };
 
@@ -406,6 +415,7 @@ in
         '';
         license = licenses.php301;
         homepage = "https://bitbucket.org/osmanov/pecl-event/";
+        maintainers = teams.php.members;
       };
     };
 
@@ -418,6 +428,8 @@ in
       configureFlags = [ "--enable-igbinary" ];
       makeFlags = [ "phpincludedir=$(dev)/include" ];
       outputs = [ "out" "dev" ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     imagick = buildPecl {
@@ -429,6 +441,8 @@ in
       configureFlags = [ "--with-imagick=${pkgs.imagemagick.dev}" ];
       nativeBuildInputs = [ pkgs.pkgconfig ];
       buildInputs = [ pcre' ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     mailparse = buildPecl {
@@ -440,6 +454,8 @@ in
       postConfigure = ''
         echo "#define HAVE_MBSTRING 1" >> config.h
       '';
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     maxminddb = buildPecl rec {
@@ -459,7 +475,7 @@ in
       meta = with pkgs.lib; {
         description = "C extension that is a drop-in replacement for MaxMind\\Db\\Reader";
         license = with licenses; [ asl20 ];
-        maintainers = with maintainers; [ ajs124 das_j ];
+        maintainers = with maintainers; [ ajs124 das_j ] ++ teams.php.members;
       };
     };
 
@@ -486,6 +502,8 @@ in
 
       nativeBuildInputs = [ pkgs.pkgconfig ];
       buildInputs = with pkgs; [ cyrus_sasl zlib ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     mongodb = buildPecl {
@@ -503,6 +521,8 @@ in
         zlib
         pcre'
       ] ++ lib.optional (pkgs.stdenv.isDarwin) pkgs.darwin.apple_sdk.frameworks.Security;
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     oci8 = buildPecl {
@@ -516,6 +536,8 @@ in
       postPatch = ''
         sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
       '';
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     pcov = buildPecl {
@@ -525,6 +547,8 @@ in
       sha256 = "1psfwscrc025z8mziq69pcx60k4fbkqa5g2ia8lplb94mmarj0v1";
 
       buildInputs = [ pcre' ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     pcs = buildPecl {
@@ -533,11 +557,12 @@ in
 
       sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
 
+      meta.maintainers = lib.teams.php.members;
       meta.broken = isPhp74; # Build error
     };
 
     pdo_oci = buildPecl rec {
-      inherit (php) src version;
+      inherit (php.unwrapped) src version;
 
       pname = "pdo_oci";
       sourceRoot = "php-${version}/ext/pdo_oci";
@@ -548,8 +573,10 @@ in
       internalDeps = [ php.extensions.pdo ];
 
       postPatch = ''
-      sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
-    '';
+        sed -i -e 's|OCISDKMANINC=`.*$|OCISDKMANINC="${pkgs.oracle-instantclient.dev}/include"|' config.m4
+      '';
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     pdo_sqlsrv = buildPecl {
@@ -561,6 +588,8 @@ in
       internalDeps = [ php.extensions.pdo ];
 
       buildInputs = [ pkgs.unixODBC ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.libiconv ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     php_excel = buildPecl rec {
@@ -576,6 +605,8 @@ in
       };
 
       configureFlags = [ "--with-excel" "--with-libxl-incdir=${pkgs.libxl}/include_c" "--with-libxl-libdir=${pkgs.libxl}/lib" ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     pinba = let
@@ -601,6 +632,7 @@ in
           statistics server for PHP using MySQL as a read-only interface.
         '';
         homepage = "http://pinba.org/";
+        maintainers = teams.php.members;
       };
     };
 
@@ -618,6 +650,7 @@ in
         '';
         license = licenses.bsd3;
         homepage = "https://developers.google.com/protocol-buffers/";
+        maintainers = teams.php.members;
       };
     };
 
@@ -653,6 +686,8 @@ in
         session
       ] ++ lib.optionals (lib.versionOlder php.version "7.4") [
         hash ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     sqlsrv = buildPecl {
@@ -662,6 +697,8 @@ in
       sha256 = "1kv4krk1w4hri99b0sdgwgy9c4y0yh217wx2y3irhkfi46kdrjnw";
 
       buildInputs = [ pkgs.unixODBC ] ++ pkgs.lib.optionals pkgs.stdenv.isDarwin [ pkgs.libiconv ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     v8 = buildPecl {
@@ -672,6 +709,8 @@ in
 
       buildInputs = [ pkgs.v8_6_x ];
       configureFlags = [ "--with-v8=${pkgs.v8_6_x}" ];
+
+      meta.maintainers = lib.teams.php.members;
       meta.broken = true;
     };
 
@@ -683,6 +722,8 @@ in
 
       buildInputs = [ pkgs.v8_6_x ];
       configureFlags = [ "--with-v8js=${pkgs.v8_6_x}" ];
+
+      meta.maintainers = lib.teams.php.members;
       meta.broken = true;
     };
 
@@ -696,6 +737,8 @@ in
       checkTarget = "test";
 
       zendExtension = true;
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     yaml = buildPecl {
@@ -709,6 +752,8 @@ in
       ];
 
       nativeBuildInputs = [ pkgs.pkgconfig ];
+
+      meta.maintainers = lib.teams.php.members;
     };
 
     zmq = buildPecl {
@@ -723,6 +768,7 @@ in
 
       nativeBuildInputs = [ pkgs.pkgconfig ];
 
+      meta.maintainers = lib.teams.php.members;
       meta.broken = isPhp73;
     };
   } // (let
@@ -746,11 +792,11 @@ in
       pname = "php-${name}";
       extensionName = name;
 
-      inherit (php) version src;
+      inherit (php.unwrapped) version src;
       sourceRoot = "php-${php.version}/ext/${name}";
 
       enableParallelBuilding = true;
-      nativeBuildInputs = [ php autoconf pkgconfig re2c ];
+      nativeBuildInputs = [ php.unwrapped autoconf pkgconfig re2c ];
       inherit configureFlags internalDeps buildInputs
         zendExtension doCheck;
 
@@ -782,6 +828,8 @@ in
                               --prune-empty-dirs \
                               . $dev/include/
       '';
+
+      meta.maintainers = lib.teams.php.members;
     });
 
     # This list contains build instructions for different modules that one may