From 2c3d045bc31e7baab833b1d4adb553263e75fe2e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vojt=C4=9Bch=20K=C3=A1n=C4=9B?= <vojtech.kane@gmail.com>
Date: Tue, 4 May 2021 09:14:37 +0200
Subject: [PATCH 01/24] lightworks: 14.0.0 -> 2021.2

---
 pkgs/applications/video/lightworks/default.nix | 13 ++++++++-----
 pkgs/top-level/all-packages.nix                |  4 +---
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 0312c34bf702..9fcf40ec0a5e 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, dpkg, makeWrapper, buildFHSUserEnv
 , gtk3, gdk-pixbuf, cairo, libjpeg_original, glib, pango, libGLU
-, nvidia_cg_toolkit, zlib, openssl, portaudio
+, libGL, nvidia_cg_toolkit, zlib, openssl, libuuid , alsaLib, udev
 }:
 let
   fullPath = lib.makeLibraryPath [
@@ -11,22 +11,25 @@ let
     libjpeg_original
     glib
     pango
+    libGL
     libGLU
     nvidia_cg_toolkit
     zlib
     openssl
-    portaudio
+    libuuid
+    alsaLib
+    udev
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "14.0.0";
+    version = "2021.2";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = "http://downloads.lwks.com/v14/lwks-14.0.0-amd64.deb";
-          sha256 = "66eb9f9678d979db76199f1c99a71df0ddc017bb47dfda976b508849ab305033";
+          url = "https://cdn.lwks.com/releases/2021.2/lightworks_2021.2_r128258.deb";
+          sha256 = "sha256-IRzoysfGh/P+Xr50+cIjjaKuxdSzgCmJDICFtekfE3Y=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f2b1f27dac09..6de07ddc6985 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -24412,9 +24412,7 @@ in
 
   liferea = callPackage ../applications/networking/newsreaders/liferea { };
 
-  lightworks = callPackage ../applications/video/lightworks {
-    portaudio = portaudio2014;
-  };
+  lightworks = callPackage ../applications/video/lightworks { };
 
   lingot = callPackage ../applications/audio/lingot { };
 

From ccb691c7d156f26857159d324b788c0e3789322a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vojt=C4=9Bch=20K=C3=A1n=C4=9B?= <vojtech.kane@gmail.com>
Date: Tue, 4 May 2021 09:14:45 +0200
Subject: [PATCH 02/24] lightworks: add me as a maintainer

---
 pkgs/applications/video/lightworks/default.nix | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 9fcf40ec0a5e..ecc5a6491dd5 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -85,7 +85,7 @@ in buildFHSUserEnv {
     description = "Professional Non-Linear Video Editor";
     homepage = "https://www.lwks.com/";
     license = lib.licenses.unfree;
-    maintainers = [ lib.maintainers.antonxy ];
+    maintainers = with lib.maintainers; [ antonxy vojta001 ];
     platforms = [ "x86_64-linux" ];
   };
 }

From a9edf3b544aba334814ea830b8650a38e56b69c3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Vojt=C4=9Bch=20K=C3=A1n=C4=9B?= <vojtech.kane@gmail.com>
Date: Wed, 26 May 2021 11:23:44 +0200
Subject: [PATCH 03/24] lightworks: 2021.2 -> 2021.2.1

---
 pkgs/applications/video/lightworks/default.nix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index ecc5a6491dd5..9d940cd29b41 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -22,14 +22,15 @@ let
   ];
 
   lightworks = stdenv.mkDerivation rec {
-    version = "2021.2";
+    version = "2021.2.1";
+    rev = "128456";
     pname = "lightworks";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = "https://cdn.lwks.com/releases/2021.2/lightworks_2021.2_r128258.deb";
-          sha256 = "sha256-IRzoysfGh/P+Xr50+cIjjaKuxdSzgCmJDICFtekfE3Y=";
+          url = "https://cdn.lwks.com/releases/${version}/lightworks_${lib.versions.majorMinor version}_r${rev}.deb";
+          sha256 = "sha256-GkTg43IUF1NgEm/wT9CZw68Dw/R2BYBU/F4bsCxQowQ=";
         }
       else throw "${pname}-${version} is not supported on ${stdenv.hostPlatform.system}";
 

From b552e4ada4f7131de0f53f1e842ed2cb104f8376 Mon Sep 17 00:00:00 2001
From: Austin Butler <austinabutler@gmail.com>
Date: Wed, 2 Jun 2021 19:25:55 -0700
Subject: [PATCH 04/24] python3Packages.notify-py: 0.3.1 -> 0.3.3

---
 .../python-modules/notify-py/default.nix      | 36 ++++++++++---------
 1 file changed, 20 insertions(+), 16 deletions(-)

diff --git a/pkgs/development/python-modules/notify-py/default.nix b/pkgs/development/python-modules/notify-py/default.nix
index 46c72fb69794..ea9f0485bef8 100644
--- a/pkgs/development/python-modules/notify-py/default.nix
+++ b/pkgs/development/python-modules/notify-py/default.nix
@@ -1,33 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, alsaUtils, libnotify, which, loguru, pytest }:
+{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, coreutils, alsaUtils
+, libnotify, which, jeepney, loguru, pytestCheckHook }:
 
 buildPythonPackage rec {
-  pname = "notify_py";
-  version = "0.3.1";
+  pname = "notify-py";
+  version = "0.3.3";
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5ba696d18ffe1d7070f3d0a5b4923fee4d6c863de6843af105bec0ce9915ebad";
+  src = fetchFromGitHub {
+    owner = "ms7m";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1n35adwsyhz304n4ifnsz6qzkymwhyqc8sg8d76qv5psv2xsnzlf";
   };
 
-  postPatch = ''
-   substituteInPlace setup.py \
-     --replace "loguru==0.4.1" "loguru~=0.5.0"
-  '';
+  propagatedNativeBuildInputs = [ which ]
+    ++ lib.optionals stdenv.isLinux [ alsaUtils libnotify ];
+  propagatedBuildInputs = [ loguru ]
+    ++ lib.optionals stdenv.isLinux [ jeepney ];
 
-  propagatedBuildInputs = [ alsaUtils libnotify loguru which ];
+  checkInputs = [ coreutils pytestCheckHook ];
 
-  checkInputs = [ alsaUtils libnotify pytest which ];
-
-  checkPhase = ''
-    pytest
+  # Tests search for "afplay" binary which is built in to MacOS and not available in nixpkgs
+  preCheck = ''
+    mkdir $TMP/bin
+    ln -s ${coreutils}/bin/true $TMP/bin/afplay
+    export PATH="$TMP/bin:$PATH"
   '';
 
   pythonImportsCheck = [ "notifypy" ];
 
   meta = with lib; {
-    description = " Python Module for sending cross-platform desktop notifications on Windows, macOS, and Linux.";
+    description = "Python Module for sending cross-platform desktop notifications on Windows, macOS, and Linux.";
     homepage = "https://github.com/ms7m/notify-py/";
     license = licenses.mit;
     maintainers = with maintainers; [ austinbutler ];

From 976d668e5c5566c3e96b17d667830a0f3ed1bbb5 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Thu, 3 Jun 2021 12:37:48 +0200
Subject: [PATCH 05/24] nixos/rspamd-exporter: fix metrics

In 0.3.0 of the json-exporter[1] it was switched to a different jsonpath
library which made some changes - especially for spaces in keys -
necessary. Also I decided to remove the pretty-printed JSON as this
would interfere with the bash quoting too much. If one needs
pretty-printed output, they can still pipe the output to `jq`.

[1] https://github.com/prometheus-community/json_exporter/releases/tag/v0.3.0
---
 .../prometheus/exporters/rspamd.nix           | 36 +++++++++----------
 1 file changed, 17 insertions(+), 19 deletions(-)

diff --git a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
index d95e5ed9e83c..994670a376e7 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/rspamd.nix
@@ -5,21 +5,19 @@ with lib;
 let
   cfg = config.services.prometheus.exporters.rspamd;
 
-  prettyJSON = conf:
-    pkgs.runCommand "rspamd-exporter-config.yml" { } ''
-      echo '${builtins.toJSON conf}' | ${pkgs.buildPackages.jq}/bin/jq '.' > $out
-    '';
+  mkFile = conf:
+    pkgs.writeText "rspamd-exporter-config.yml" (builtins.toJSON conf);
 
   generateConfig = extraLabels: {
     metrics = (map (path: {
-      name = "rspamd_${replaceStrings [ "." " " ] [ "_" "_" ] path}";
+      name = "rspamd_${replaceStrings [ "[" "." " " "]" "\\" "'" ] [ "_" "_" "_" "" "" "" ] path}";
       path = "{ .${path} }";
       labels = extraLabels;
     }) [
-      "actions.'add header'"
-      "actions.'no action'"
-      "actions.'rewrite subject'"
-      "actions.'soft reject'"
+      "actions['add\\ header']"
+      "actions['no\\ action']"
+      "actions['rewrite\\ subject']"
+      "actions['soft\\ reject']"
       "actions.greylist"
       "actions.reject"
       "bytes_allocated"
@@ -40,18 +38,18 @@ let
     ]) ++ [{
       name = "rspamd_statfiles";
       type = "object";
-      path = "$.statfiles[*]";
+      path = "{.statfiles[*]}";
       labels = recursiveUpdate {
-        symbol = "$.symbol";
-        type = "$.type";
+        symbol = "{.symbol}";
+        type = "{.type}";
       } extraLabels;
       values = {
-        revision = "$.revision";
-        size = "$.size";
-        total = "$.total";
-        used = "$.used";
-        languages = "$.languages";
-        users = "$.users";
+        revision = "{.revision}";
+        size = "{.size}";
+        total = "{.total}";
+        used = "{.used}";
+        languages = "{.languages}";
+        users = "{.users}";
       };
     }];
   };
@@ -76,7 +74,7 @@ in
   };
   serviceOpts.serviceConfig.ExecStart = ''
     ${pkgs.prometheus-json-exporter}/bin/json_exporter \
-      --config.file ${prettyJSON (generateConfig cfg.extraLabels)} \
+      --config.file ${mkFile (generateConfig cfg.extraLabels)} \
       --web.listen-address "${cfg.listenAddress}:${toString cfg.port}" \
       ${concatStringsSep " \\\n  " cfg.extraFlags}
   '';

From 6fb847c55643780c1ba3a98c57ba57541ed33d14 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Thu, 3 Jun 2021 13:01:11 +0200
Subject: [PATCH 06/24] nixos/dovecot-exporter: fix documentation for old stats

---
 .../monitoring/prometheus/exporters/dovecot.nix | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
index aba3533e4395..472652fe8a7a 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/dovecot.nix
@@ -35,13 +35,28 @@ in
         {
           <xref linkend="opt-services.prometheus.exporters.dovecot.enable" /> = true;
           <xref linkend="opt-services.prometheus.exporters.dovecot.socketPath" /> = "/var/run/dovecot2/old-stats";
+          <xref linkend="opt-services.dovecot2.mailPlugins.globally.enable" /> = [ "old_stats" ];
           <xref linkend="opt-services.dovecot2.extraConfig" /> = '''
-            mail_plugins = $mail_plugins old_stats
             service old-stats {
               unix_listener old-stats {
                 user = dovecot-exporter
                 group = dovecot-exporter
+                mode = 0660
               }
+              fifo_listener old-stats-mail {
+                mode = 0660
+                user = dovecot
+                group = dovecot
+              }
+              fifo_listener old-stats-user {
+                mode = 0660
+                user = dovecot
+                group = dovecot
+              }
+            }
+            plugin {
+              old_stats_refresh = 30 secs
+              old_stats_track_cmds = yes
             }
           ''';
         }

From ba9768f3143c728a47515d0548025a103fca9013 Mon Sep 17 00:00:00 2001
From: Maximilian Bosch <maximilian@mbosch.me>
Date: Thu, 3 Jun 2021 13:10:23 +0200
Subject: [PATCH 07/24] nixos/mail-exporter: add note about rspamd marking
 probe mails as spam

---
 .../monitoring/prometheus/exporters/mail.nix   | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/nixos/modules/services/monitoring/prometheus/exporters/mail.nix b/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
index 18c5c4dd1623..7e196149fbb3 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/mail.nix
@@ -112,6 +112,24 @@ let
       '';
       description = ''
         List of servers that should be probed.
+
+        <emphasis>Note:</emphasis> if your mailserver has <citerefentry>
+        <refentrytitle>rspamd</refentrytitle><manvolnum>8</manvolnum></citerefentry> configured,
+        it can happen that emails from this exporter are marked as spam.
+
+        It's possible to work around the issue with a config like this:
+        <programlisting>
+        {
+          <link linkend="opt-services.rspamd.locals._name_.text">services.rspamd.locals."multimap.conf".text</link> = '''
+            ALLOWLIST_PROMETHEUS {
+              filter = "email:domain:tld";
+              type = "from";
+              map = "''${pkgs.writeText "allowmap" "domain.tld"}";
+              score = -100.0;
+            }
+          ''';
+        }
+        </programlisting>
       '';
     };
   };

From b9fb66d635670bc548daac19ffc8a2d0141d0cb1 Mon Sep 17 00:00:00 2001
From: Austin Butler <abutler@riotgames.com>
Date: Thu, 3 Jun 2021 12:00:32 -0700
Subject: [PATCH 08/24] python3Packages.toggl-cli: 2.4.1 -> 2.4.2

---
 .../python-modules/toggl-cli/default.nix      | 47 +++++++------------
 1 file changed, 17 insertions(+), 30 deletions(-)

diff --git a/pkgs/development/python-modules/toggl-cli/default.nix b/pkgs/development/python-modules/toggl-cli/default.nix
index d7eece650026..d8225e7031ea 100644
--- a/pkgs/development/python-modules/toggl-cli/default.nix
+++ b/pkgs/development/python-modules/toggl-cli/default.nix
@@ -1,54 +1,41 @@
-{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder
-, click
-, click-completion
-, factory_boy
-, faker
-, inquirer
-, notify-py
-, pbr
-, pendulum
-, ptable
-, pytest
-, pytestcov
-, pytest-mock
-, requests
-, twine
-, validate-email
-}:
-
+{ lib, buildPythonPackage, fetchPypi, pythonAtLeast, pythonOlder, click
+, click-completion, factory_boy, faker, inquirer, notify-py, pbr, pendulum
+, ptable, pytestCheckHook, pytestcov, pytest-mock, requests, twine
+, validate-email }:
 
 buildPythonPackage rec {
   pname = "toggl-cli";
-  version = "2.4.1";
+  version = "2.4.2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     pname = "togglCli";
     inherit version;
-    sha256 = "19lry8adcznzmzbvghyid3yl4j05db6931bw38af5vrkkyzyf62i";
+    sha256 = "1wgh231r16jyvaj1ch1pajvl9szflb4srs505pfdwdlqvz7rzww8";
   };
 
   postPatch = ''
-   substituteInPlace requirements.txt \
-     --replace "inquirer==2.6.3" "inquirer>=2.6.3" \
-     --replace "notify-py==0.2.2" "notify-py>=0.2.2"
+    substituteInPlace requirements.txt \
+      --replace "notify-py==0.3.1" "notify-py>=0.3.1"
   '';
 
   nativeBuildInputs = [ pbr twine ];
-  checkInputs = [ pbr pytest pytestcov pytest-mock faker factory_boy ];
+  checkInputs = [ pbr pytestCheckHook pytestcov pytest-mock faker factory_boy ];
 
   preCheck = ''
     export TOGGL_API_TOKEN=your_api_token
     export TOGGL_PASSWORD=toggl_password
     export TOGGL_USERNAME=user@example.com
-    '';
-
-  checkPhase = ''
-   runHook preCheck
-   pytest -k "not premium and not TestDateTimeType and not TestDateTimeField" tests/unit --maxfail=20
-   runHook postCheck
   '';
 
+  disabledTests = [
+    "integration"
+    "premium"
+    "test_parsing"
+    "test_type_check"
+    "test_now"
+  ];
+
   propagatedBuildInputs = [
     click
     click-completion

From e2a7772872c5f4d0d498c52840540fa63746856d Mon Sep 17 00:00:00 2001
From: Mario Rodas <marsam@users.noreply.github.com>
Date: Fri, 4 Jun 2021 04:20:00 +0000
Subject: [PATCH 09/24] flow: 0.150.1 -> 0.152.0

https://github.com/facebook/flow/releases/tag/v0.152.0
---
 pkgs/development/tools/analysis/flow/default.nix | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 62476cacbb2d..ea1aee669c54 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.150.1";
+  version = "0.152.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "sha256-waQdS0HJVW2WFQFklmZJC0jr09JrDP5Fl7SxVS0dsgU=";
+    sha256 = "1af9z6xah3rk99pv984nikkpq8jzl5r0fccb1gdhmi7y5a6y6g1m";
   };
 
   installPhase = ''
@@ -16,13 +16,13 @@ stdenv.mkDerivation rec {
     install -Dm644 resources/shell/bash-completion $out/share/bash-completion/completions/flow
   '';
 
-  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml-migrate-parsetree dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
+  buildInputs = (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml-migrate-parsetree-2-1 dtoa core_kernel sedlex_2 ocaml_lwt lwt_log lwt_ppx ppx_deriving ppx_gen_rec ppx_tools_versioned visitors wtf8 ])
     ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   meta = with lib; {
     description = "A static type checker for JavaScript";
     homepage = "https://flow.org/";
-    changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
+    changelog = "https://github.com/facebook/flow/raw/v${version}/Changelog.md";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
     maintainers = with maintainers; [ marsam puffnfresh ];

From 68eb5305ac93adb1cce777c0ae73fd29eccb6973 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Thu, 3 Jun 2021 15:06:06 +0200
Subject: [PATCH 10/24] php: Drop PHP 7.3 support

PHP 7.3 won't be supported by upstream for the entire life cycle of
the 21.11 release.

Also drop the pcre' alias since it isn't needed anymore since we don't
need different pcre versions anymore.
---
 .../from_md/release-notes/rl-2111.section.xml | 15 ++++-
 .../manual/release-notes/rl-2111.section.md   |  3 +
 nixos/tests/all-tests.nix                     |  1 -
 pkgs/development/interpreters/php/7.3.nix     | 20 -------
 pkgs/development/interpreters/php/generic.nix | 16 +++--
 .../php/php73-darwin-isfinite.patch           | 60 -------------------
 .../development/php-packages/apcu/default.nix |  4 +-
 .../php-packages/apcu_bc/default.nix          |  4 +-
 .../php-packages/imagick/default.nix          |  4 +-
 .../php-packages/mongodb/default.nix          |  4 +-
 .../development/php-packages/pcov/default.nix |  4 +-
 .../php-packages/pinba/default.nix            | 19 ++----
 .../php-packages/protobuf/default.nix         |  4 +-
 .../php-packages/pthreads/default.nix         | 26 +++-----
 .../php-packages/rdkafka/default.nix          |  4 +-
 .../php-packages/snuffleupagus/default.nix    |  4 +-
 .../php-packages/swoole/default.nix           |  4 +-
 pkgs/development/tools/misc/drush/default.nix |  4 +-
 pkgs/servers/http/unit/default.nix            |  5 --
 pkgs/top-level/aliases.nix                    |  9 ++-
 pkgs/top-level/all-packages.nix               |  7 ---
 pkgs/top-level/php-packages.nix               | 22 +++----
 22 files changed, 72 insertions(+), 171 deletions(-)
 delete mode 100644 pkgs/development/interpreters/php/7.3.nix
 delete mode 100644 pkgs/development/interpreters/php/php73-darwin-isfinite.patch

diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index e0b52ffa342c..5f7b1fc811c0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -14,8 +14,13 @@
   </itemizedlist>
   <section xml:id="highlights">
     <title>Highlights</title>
-    <para>
-    </para>
+    <itemizedlist spacing="compact">
+      <listitem>
+        <para>
+          PHP now defaults to PHP 8.0, updated from 7.4
+        </para>
+      </listitem>
+    </itemizedlist>
   </section>
   <section xml:id="new-services">
     <title>New Services</title>
@@ -45,6 +50,12 @@
           <link xlink:href="options.html#opt-services.geoipupdate.enable">services.geoipupdate</link>.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          PHP 7.3 is no longer supported due to upstream not supporting
+          this version for the entire lifecycle of the 21.11 release.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="other-notable-changes">
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index d4604447f83f..439437f5c09c 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -19,4 +19,7 @@ In addition to numerous new and upgraded packages, this release has the followin
 * `services.geoip-updater` was broken and has been replaced by
   [services.geoipupdate](options.html#opt-services.geoipupdate.enable).
 
+* PHP 7.3 is no longer supported due to upstream not supporting this
+  version for the entire lifecycle of the 21.11 release.
+
 ## Other Notable Changes
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index f062208a3b64..d8fcbde6bc0c 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -325,7 +325,6 @@ in
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   php = handleTest ./php {};
-  php73 = handleTest ./php { php = pkgs.php73; };
   php74 = handleTest ./php { php = pkgs.php74; };
   php80 = handleTest ./php { php = pkgs.php80; };
   pinnwand = handleTest ./pinnwand.nix {};
diff --git a/pkgs/development/interpreters/php/7.3.nix b/pkgs/development/interpreters/php/7.3.nix
deleted file mode 100644
index 569fb1b54054..000000000000
--- a/pkgs/development/interpreters/php/7.3.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ callPackage, lib, stdenv, nixosTests, ... }@_args:
-
-let
-  generic = (import ./generic.nix) _args;
-
-  base = callPackage generic (_args // {
-    version = "7.3.28";
-    sha256 = "0r4r8famg3a8x6ch24y1370nsphkxg4k9zq5x8v88f4l8mj6wqwg";
-
-    # https://bugs.php.net/bug.php?id=76826
-    extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
-  });
-
-in base.withExtensions ({ all, ... }: with all; ([
-  bcmath calendar curl ctype dom exif fileinfo filter ftp gd
-  gettext gmp hash iconv intl json ldap mbstring mysqli mysqlnd
-  opcache openssl pcntl pdo pdo_mysql pdo_odbc pdo_pgsql pdo_sqlite
-  pgsql posix readline session simplexml sockets soap sodium sqlite3
-  tokenizer xmlreader xmlwriter zip zlib
-] ++ lib.optionals (!stdenv.isDarwin) [ imap ]))
diff --git a/pkgs/development/interpreters/php/generic.nix b/pkgs/development/interpreters/php/generic.nix
index 13fd811c4ea8..233e1b7007f4 100644
--- a/pkgs/development/interpreters/php/generic.nix
+++ b/pkgs/development/interpreters/php/generic.nix
@@ -7,7 +7,7 @@ let
   generic =
     { callPackage, lib, stdenv, nixosTests, fetchurl, makeWrapper
     , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
-    , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
+    , pkg-config, re2c, apacheHttpd, libargon2, libxml2, pcre2
     , systemd, system-sendmail, valgrind, xcbuild
 
     , version
@@ -103,7 +103,7 @@ let
                 ${extraConfig}
               '';
 
-              phpWithExtensions = symlinkJoin rec {
+              phpWithExtensions = symlinkJoin {
                 name = "php-with-extensions-${version}";
                 inherit (php) version;
                 nativeBuildInputs = [ makeWrapper ];
@@ -142,8 +142,6 @@ let
 
         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";
@@ -157,7 +155,7 @@ let
 
           buildInputs =
             # PCRE extension
-            [ pcre' ]
+            [ pcre2 ]
 
             # Enable sapis
             ++ lib.optional pearSupport [ libxml2.dev ]
@@ -176,10 +174,10 @@ let
             [ "--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'}" ]
+            ++ lib.optionals (lib.versionAtLeast version "7.4") [ "--with-external-pcre=${pcre2.dev}" ]
+            ++ lib.optionals (lib.versions.majorMinor version == "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
+            ++ lib.optionals (lib.versionOlder version "7.3") [ "--with-pcre-regex=${pcre2.dev}" ]
+            ++ [ "PCRE_LIBDIR=${pcre2}" ]
 
 
             # Enable sapis
diff --git a/pkgs/development/interpreters/php/php73-darwin-isfinite.patch b/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
deleted file mode 100644
index 7f784e0f5a95..000000000000
--- a/pkgs/development/interpreters/php/php73-darwin-isfinite.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-diff -ru a/configure.ac b/configure.ac
---- a/configure.ac      2018-12-04 19:12:20.000000000 +0300
-+++ b/configure.ac      2018-12-10 12:30:37.798917520 +0300
-@@ -68,7 +68,7 @@
- #include <math.h>
-
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -77,7 +77,7 @@
- #endif
- #endif
-
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -88,7 +88,7 @@
- #define zend_isinf(a) 0
- #endif
-
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
-diff -ru a/Zend/configure.ac b/Zend/configure.ac
---- a/Zend/configure.ac 2018-12-04 19:12:30.000000000 +0300
-+++ b/Zend/configure.ac 2018-12-10 12:28:50.350929699 +0300
-@@ -59,7 +59,7 @@
- #include <math.h>
-
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -68,7 +68,7 @@
- #endif
- #endif
-
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -79,7 +79,7 @@
- #define zend_isinf(a) 0
- #endif
-
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
diff --git a/pkgs/development/php-packages/apcu/default.nix b/pkgs/development/php-packages/apcu/default.nix
index 3301d949c228..5aa8b2b4f9b1 100644
--- a/pkgs/development/php-packages/apcu/default.nix
+++ b/pkgs/development/php-packages/apcu/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre' }:
+{ buildPecl, lib, pcre2 }:
 
 buildPecl {
   pname = "apcu";
@@ -6,7 +6,7 @@ buildPecl {
   version = "5.1.20";
   sha256 = "sha256-uZ1A+v7Ab00TL87lPnUm3b/B0EHqbgThc4nfrSj5w5A=";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
   doCheck = true;
   checkTarget = "test";
   checkFlagsArray = [ "REPORT_EXIT_STATUS=1" "NO_INTERACTION=1" ];
diff --git a/pkgs/development/php-packages/apcu_bc/default.nix b/pkgs/development/php-packages/apcu_bc/default.nix
index a9c34a8d778f..448c25bee64b 100644
--- a/pkgs/development/php-packages/apcu_bc/default.nix
+++ b/pkgs/development/php-packages/apcu_bc/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre', php }:
+{ buildPecl, lib, pcre2, php }:
 
 buildPecl {
   pname = "apcu_bc";
@@ -8,7 +8,7 @@ buildPecl {
 
   peclDeps = [ php.extensions.apcu ];
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   postInstall = ''
     mv $out/lib/php/extensions/apc.so $out/lib/php/extensions/apcu_bc.so
diff --git a/pkgs/development/php-packages/imagick/default.nix b/pkgs/development/php-packages/imagick/default.nix
index ebff9b00f02c..744ba2302f7b 100644
--- a/pkgs/development/php-packages/imagick/default.nix
+++ b/pkgs/development/php-packages/imagick/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre' }:
+{ buildPecl, fetchpatch, lib, imagemagick, pkg-config, pcre2 }:
 
 buildPecl {
   pname = "imagick";
@@ -21,7 +21,7 @@ buildPecl {
 
   configureFlags = [ "--with-imagick=${imagemagick.dev}" ];
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/pkgs/development/php-packages/mongodb/default.nix b/pkgs/development/php-packages/mongodb/default.nix
index 95e51892f04e..d0e5e545f6b9 100644
--- a/pkgs/development/php-packages/mongodb/default.nix
+++ b/pkgs/development/php-packages/mongodb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPecl, lib, pcre', pkg-config, cyrus_sasl, icu64
+{ stdenv, buildPecl, lib, pcre2, pkg-config, cyrus_sasl, icu64
 , openssl, snappy, zlib, darwin }:
 
 buildPecl {
@@ -14,7 +14,7 @@ buildPecl {
     openssl
     snappy
     zlib
-    pcre'
+    pcre2
   ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
   meta.maintainers = lib.teams.php.members;
diff --git a/pkgs/development/php-packages/pcov/default.nix b/pkgs/development/php-packages/pcov/default.nix
index 1422e1b176d4..0583f776e56a 100644
--- a/pkgs/development/php-packages/pcov/default.nix
+++ b/pkgs/development/php-packages/pcov/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre' }:
+{ buildPecl, lib, pcre2 }:
 
 buildPecl {
   pname = "pcov";
@@ -6,7 +6,7 @@ buildPecl {
   version = "1.0.8";
   sha256 = "sha256-6rbniyxLIHPW/e+eWZN1qS8F1rOB7ld1N8JKUS1geRQ=";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/pkgs/development/php-packages/pinba/default.nix b/pkgs/development/php-packages/pinba/default.nix
index 0880c2a46e21..4c1b42183ba7 100644
--- a/pkgs/development/php-packages/pinba/default.nix
+++ b/pkgs/development/php-packages/pinba/default.nix
@@ -1,24 +1,15 @@
 { buildPecl, lib, fetchFromGitHub, php }:
-let
+
+buildPecl {
   pname = "pinba";
+  version = "1.1.2-dev";
 
-  isPhp73 = lib.versionAtLeast php.version "7.3";
-
-  version = if isPhp73 then "1.1.2-dev" else "1.1.1";
-
-  src = fetchFromGitHub ({
+  src = fetchFromGitHub {
     owner = "tony2001";
     repo = "pinba_extension";
-  } // (if (isPhp73) then {
     rev = "edbc313f1b4fb8407bf7d5acf63fbb0359c7fb2e";
     sha256 = "02sljqm6griw8ccqavl23f7w1hp2zflcv24lpf00k6pyrn9cwx80";
-  } else {
-    rev = "RELEASE_1_1_1";
-    sha256 = "1kdp7vav0y315695vhm3xifgsh6h6y6pny70xw3iai461n58khj5";
-  }));
-in
-buildPecl {
-  inherit pname version src;
+  };
 
   meta = with lib; {
     description = "PHP extension for Pinba";
diff --git a/pkgs/development/php-packages/protobuf/default.nix b/pkgs/development/php-packages/protobuf/default.nix
index e2ef068120d7..2112e84cffff 100644
--- a/pkgs/development/php-packages/protobuf/default.nix
+++ b/pkgs/development/php-packages/protobuf/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, pcre', fetchpatch }:
+{ buildPecl, lib, pcre2, fetchpatch }:
 
 buildPecl {
   pname = "protobuf";
@@ -6,7 +6,7 @@ buildPecl {
   version = "3.14.0";
   sha256 = "1ldc4s28hq61cfg8l4c06pgicj0ng7k37f28a0dnnbs7xkr7cibd";
 
-  buildInputs = [ pcre' ];
+  buildInputs = [ pcre2 ];
 
   patches = [
     # TODO: remove with next update
diff --git a/pkgs/development/php-packages/pthreads/default.nix b/pkgs/development/php-packages/pthreads/default.nix
index 31b32e82967d..c1aac8c8424b 100644
--- a/pkgs/development/php-packages/pthreads/default.nix
+++ b/pkgs/development/php-packages/pthreads/default.nix
@@ -1,28 +1,18 @@
-{ buildPecl, lib, fetchFromGitHub, php, pcre' }:
-let
+{ buildPecl, lib, fetchFromGitHub, php, pcre2 }:
+
+buildPecl {
   pname = "pthreads";
+  version = "3.2.0-dev";
 
-  isPhp73 = lib.versionAtLeast php.version "7.3";
-  isPhp74 = lib.versionAtLeast php.version "7.4";
-
-  version = if isPhp73 then "3.2.0-dev" else "3.2.0";
-
-  src = fetchFromGitHub ({
+  src = fetchFromGitHub {
     owner = "krakjoe";
     repo = "pthreads";
-  } // (if (isPhp73) then {
     rev = "4d1c2483ceb459ea4284db4eb06646d5715e7154";
     sha256 = "07kdxypy0bgggrfav2h1ccbv67lllbvpa3s3zsaqci0gq4fyi830";
-  } else {
-    rev = "v3.2.0";
-    sha256 = "17hypm75d4w7lvz96jb7s0s87018yzmmap0l125d5fd7abnhzfvv";
-  }));
-in
-buildPecl {
-  inherit pname version src;
+  };
 
-  buildInputs = [ pcre'.dev ];
+  buildInputs = [ pcre2.dev ];
 
-  meta.broken = isPhp74;
+  meta.broken = lib.versionAtLeast php.version "7.4";
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/pkgs/development/php-packages/rdkafka/default.nix b/pkgs/development/php-packages/rdkafka/default.nix
index 0e78d3bbc976..c8dea9463d66 100644
--- a/pkgs/development/php-packages/rdkafka/default.nix
+++ b/pkgs/development/php-packages/rdkafka/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, lib, rdkafka, pcre' }:
+{ buildPecl, lib, rdkafka, pcre2 }:
 
 buildPecl {
   pname = "rdkafka";
@@ -6,7 +6,7 @@ buildPecl {
   version = "5.0.0";
   sha256 = "sha256-Qy+6rkPczhdxFbDhcuzmUTLMPUXYZ0HaheDBhkh4FXs=";
 
-  buildInputs = [ rdkafka pcre' ];
+  buildInputs = [ rdkafka pcre2 ];
 
   postPhpize = ''
     substituteInPlace configure \
diff --git a/pkgs/development/php-packages/snuffleupagus/default.nix b/pkgs/development/php-packages/snuffleupagus/default.nix
index 222a243606f8..4318a49a8aa5 100644
--- a/pkgs/development/php-packages/snuffleupagus/default.nix
+++ b/pkgs/development/php-packages/snuffleupagus/default.nix
@@ -2,7 +2,7 @@
 , lib
 , php
 , fetchFromGitHub
-, pcre'
+, pcre2
 , fetchpatch
 }:
 
@@ -17,7 +17,7 @@ buildPecl rec {
   };
 
   buildInputs = [
-    pcre'
+    pcre2
   ];
 
   internalDeps = with php.extensions; [
diff --git a/pkgs/development/php-packages/swoole/default.nix b/pkgs/development/php-packages/swoole/default.nix
index b3d43acd1b32..ef228c2ddc3e 100644
--- a/pkgs/development/php-packages/swoole/default.nix
+++ b/pkgs/development/php-packages/swoole/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPecl, php, valgrind, pcre' }:
+{ lib, buildPecl, php, valgrind, pcre2 }:
 
 buildPecl {
   pname = "swoole";
@@ -6,7 +6,7 @@ buildPecl {
   version = "4.6.4";
   sha256 = "0hgndnn27q7fbsb0nw6bfdg0kyy5di9vrmf7g53jc6lsnf73ha31";
 
-  buildInputs = [ valgrind pcre' ];
+  buildInputs = [ valgrind pcre2 ];
   internalDeps = lib.optionals (lib.versionOlder php.version "7.4") [ php.extensions.hash ];
 
   doCheck = true;
diff --git a/pkgs/development/tools/misc/drush/default.nix b/pkgs/development/tools/misc/drush/default.nix
index 32d9975e332b..70e7f42c5c22 100644
--- a/pkgs/development/tools/misc/drush/default.nix
+++ b/pkgs/development/tools/misc/drush/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, php73, which, makeWrapper, bash, coreutils, ncurses }:
+{ lib, stdenv, fetchurl, php, which, makeWrapper, bash, coreutils, ncurses }:
 
 stdenv.mkDerivation rec {
   name = "drush-6.1.0";
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out"
     cp -r . "$out/src"
     mkdir "$out/bin"
-    wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php73 bash coreutils ncurses ]}"
+    wrapProgram "$out/src/drush" --prefix PATH : "${lib.makeBinPath [ which php bash coreutils ncurses ]}"
     ln -s "$out/src/drush" "$out/bin/drush"
   '';
 }
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index e8d51f9efffb..d8e46231b74b 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -2,7 +2,6 @@
 , pcre2
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP73 ? false, php73
 , withPHP74 ? true, php74
 , withPerl530 ? false, perl530
 , withPerl532 ? true, perl532
@@ -26,7 +25,6 @@ let
     fpmSupport = false;
   };
 
-  php73-unit = php73.override phpConfig;
   php74-unit = php74.override phpConfig;
 
 in stdenv.mkDerivation rec {
@@ -45,7 +43,6 @@ in stdenv.mkDerivation rec {
   buildInputs = [ pcre2.dev ]
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
-    ++ optional withPHP73 php73-unit
     ++ optional withPHP74 php74-unit
     ++ optional withPerl530 perl530
     ++ optional withPerl532 perl532
@@ -64,13 +61,11 @@ in stdenv.mkDerivation rec {
     ++ optional withDebug   "--debug";
 
   # Optionally add the PHP derivations used so they can be addressed in the configs
-  usedPhp73 = optionals withPHP73 php73-unit;
   usedPhp74 = optionals withPHP74 php74-unit;
 
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
-    ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
     ${optionalString withPHP74      "./configure php    --module=php74    --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
     ${optionalString withPerl532    "./configure perl   --module=perl532  --perl=${perl532}/bin/perl"}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 4429742fbe6b..cd4ad8b1a7a2 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -528,6 +528,11 @@ mapAliases ({
   pgp-tools = signing-party; # added 2017-03-26
   pg_tmp = ephemeralpg; # added 2018-01-16
 
+  # Obsolete PHP version aliases
+  php73 = throw "php73 has been dropped due to the lack of maintanence from upstream for future releases."; # added 2021-06-03
+  php73Packages = php73; # added 2021-06-03
+  php73Extensions = php73; # added 2021-06-03
+
   php-embed = throw ''
     php*-embed has been dropped, you can build something similar
     with the following snippet:
@@ -541,8 +546,8 @@ mapAliases ({
     similar with the following snippet:
     (php74.override { embedSupport = true; apxs2Support = false; }).packages
   ''; # added 2020-04-01
-  php74Packages-embed = phpPackages-embed;
   php73Packages-embed = phpPackages-embed;
+  php74Packages-embed = phpPackages-embed;
 
   php-unit = throw ''
     php*-unit has been dropped, you can build something similar with
@@ -571,8 +576,8 @@ mapAliases ({
       fpmSupport = false;
     }).packages
   ''; # added 2020-04-01
-  php74Packages-unit = phpPackages-unit;
   php73Packages-unit = phpPackages-unit;
+  php74Packages-unit = phpPackages-unit;
 
   pidgin-with-plugins = pidgin; # added 2016-06
   pidginlatex = pidgin-latex; # added 2018-01-08
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 70bfe8415734..8a4661c18e3e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12306,13 +12306,6 @@ in
   php74Extensions = recurseIntoAttrs php74.extensions;
   php74Packages = recurseIntoAttrs php74.packages;
 
-  # Import PHP73 interpreter, extensions and packages
-  php73 = callPackage ../development/interpreters/php/7.3.nix {
-    stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-  };
-  php73Extensions = recurseIntoAttrs php73.extensions;
-  php73Packages = recurseIntoAttrs php73.packages;
-
 
   picoc = callPackage ../development/interpreters/picoc {};
 
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index f7527d4df2a9..e44efb0b9525 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, pkgs, fetchgit, phpPackage, autoconf, pkg-config, re2c
 , gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
-, html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
+, html-tidy, libzip, zlib, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
 , freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
 , readline, rsync, fetchpatch, valgrind
@@ -19,8 +19,6 @@ lib.makeScope pkgs.newScope (self: with self; {
     pname = "php-${pname}";
   });
 
-  pcre' = if (lib.versionAtLeast php.version "7.3") then pcre2 else pcre;
-
   php = phpPackage;
 
   # This is a set of interactive tools based on PHP.
@@ -297,8 +295,8 @@ lib.makeScope pkgs.newScope (self: with self; {
         doCheck = false; }
       { name = "exif"; doCheck = false; }
       { name = "ffi"; buildInputs = [ libffi ]; enable = lib.versionAtLeast php.version "7.4"; }
-      { name = "fileinfo"; buildInputs = [ pcre' ]; }
-      { name = "filter"; buildInputs = [ pcre' ]; }
+      { name = "fileinfo"; buildInputs = [ pcre2 ]; }
+      { name = "filter"; buildInputs = [ pcre2 ]; }
       { name = "ftp"; buildInputs = [ openssl ]; }
       { name = "gd";
         buildInputs = [ zlib gd ];
@@ -350,11 +348,10 @@ lib.makeScope pkgs.newScope (self: with self; {
         ];
         doCheck = false; }
       { name = "imap";
-        buildInputs = [ uwimap openssl pam pcre' ];
+        buildInputs = [ uwimap openssl pam pcre2 ];
         configureFlags = [ "--with-imap=${uwimap}" "--with-imap-ssl" ];
         # uwimap doesn't build on darwin.
         enable = (!stdenv.isDarwin); }
-      # interbase (7.3, 7.2)
       { name = "intl";
         buildInputs = [ icu64 ];
         patches = lib.optionals (lib.versionOlder php.version "7.4") [
@@ -377,7 +374,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         ];
         doCheck = false; }
       { name = "mbstring"; buildInputs = [ oniguruma ] ++ lib.optionals (lib.versionAtLeast php.version "8.0") [
-          pcre'
+          pcre2
         ]; doCheck = false; }
       { name = "mysqli";
         internalDeps = [ php.extensions.mysqlnd ];
@@ -425,7 +422,7 @@ lib.makeScope pkgs.newScope (self: with self; {
       # oci8 (7.4, 7.3, 7.2)
       # odbc (7.4, 7.3, 7.2)
       { name = "opcache";
-        buildInputs = [ pcre' ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
+        buildInputs = [ pcre2 ] ++ lib.optionals (!stdenv.isDarwin && lib.versionAtLeast php.version "8.0") [
           valgrind.dev
         ];
         patches = lib.optionals (lib.versionOlder php.version "7.4") [
@@ -480,7 +477,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         configureFlags = [ "--with-pdo-sqlite=${sqlite.dev}" ];
         doCheck = false; }
       { name = "pgsql";
-        buildInputs = [ pcre' ];
+        buildInputs = [ pcre2 ];
         configureFlags = [ "--with-pgsql=${postgresql}" ];
         doCheck = false; }
       { name = "posix"; doCheck = false; }
@@ -493,11 +490,10 @@ lib.makeScope pkgs.newScope (self: with self; {
         '';
         doCheck = false;
       }
-      # recode (7.3, 7.2)
       { name = "session"; doCheck = !(lib.versionAtLeast php.version "8.0"); }
       { name = "shmop"; }
       { name = "simplexml";
-        buildInputs = [ libxml2 pcre' ];
+        buildInputs = [ libxml2 pcre2 ];
         configureFlags = [ "--enable-simplexml" ]
           # Required to build on darwin.
           ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-libxml-dir=${libxml2.dev}" ]; }
@@ -558,7 +554,7 @@ lib.makeScope pkgs.newScope (self: with self; {
         configureFlags = [ "--with-xsl=${libxslt.dev}" ]; }
       { name = "zend_test"; }
       { name = "zip";
-        buildInputs = [ libzip pcre' ];
+        buildInputs = [ libzip pcre2 ];
         configureFlags = [ "--with-zip" ]
           ++ lib.optionals (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]
           ++ lib.optionals (lib.versionOlder php.version "7.3") [ "--with-libzip" ];

From be7451bc14309f1f1b97a920b73fdc37b0cbe06f Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Thu, 3 Jun 2021 15:20:37 +0200
Subject: [PATCH 11/24] php: Drop extensions (pcs, v8, v8js, zmq, pthreads)

They have been marked as broken for a long time so they shouldn't be
used by anyone really.

They don't build in any of the supported versions.
---
 .../php-packages/pthreads/default.nix         | 18 ------
 pkgs/top-level/php-packages.nix               | 56 -------------------
 2 files changed, 74 deletions(-)
 delete mode 100644 pkgs/development/php-packages/pthreads/default.nix

diff --git a/pkgs/development/php-packages/pthreads/default.nix b/pkgs/development/php-packages/pthreads/default.nix
deleted file mode 100644
index c1aac8c8424b..000000000000
--- a/pkgs/development/php-packages/pthreads/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ buildPecl, lib, fetchFromGitHub, php, pcre2 }:
-
-buildPecl {
-  pname = "pthreads";
-  version = "3.2.0-dev";
-
-  src = fetchFromGitHub {
-    owner = "krakjoe";
-    repo = "pthreads";
-    rev = "4d1c2483ceb459ea4284db4eb06646d5715e7154";
-    sha256 = "07kdxypy0bgggrfav2h1ccbv67lllbvpa3s3zsaqci0gq4fyi830";
-  };
-
-  buildInputs = [ pcre2.dev ];
-
-  meta.broken = lib.versionAtLeast php.version "7.4";
-  meta.maintainers = lib.teams.php.members;
-}
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index e44efb0b9525..04faacda3c59 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -90,18 +90,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     pcov = callPackage ../development/php-packages/pcov { };
 
-    pcs = buildPecl {
-      version = "1.3.3";
-      pname = "pcs";
-
-      sha256 = "0d4p1gpl8gkzdiv860qzxfz250ryf0wmjgyc8qcaaqgkdyh5jy5p";
-
-      internalDeps = [ php.extensions.tokenizer ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = lib.versionAtLeast php.version "7.3"; # Runtime failure on 7.3, build error on 7.4
-    };
-
     pdo_oci = buildPecl rec {
       inherit (php.unwrapped) src version;
 
@@ -128,8 +116,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     protobuf = callPackage ../development/php-packages/protobuf { };
 
-    pthreads = callPackage ../development/php-packages/pthreads { };
-
     rdkafka = callPackage ../development/php-packages/rdkafka { };
 
     redis = callPackage ../development/php-packages/redis { };
@@ -142,51 +128,9 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     swoole = callPackage ../development/php-packages/swoole { };
 
-    v8 = buildPecl {
-      version = "0.2.2";
-      pname = "v8";
-
-      sha256 = "103nys7zkpi1hifqp9miyl0m1mn07xqshw3sapyz365nb35g5q71";
-
-      buildInputs = [ pkgs.v8 ];
-      configureFlags = [ "--with-v8=${pkgs.v8}" ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = true;
-    };
-
-    v8js = buildPecl {
-      version = "2.1.0";
-      pname = "v8js";
-
-      sha256 = "0g63dyhhicngbgqg34wl91nm3556vzdgkq19gy52gvmqj47rj6rg";
-
-      buildInputs = [ pkgs.v8 ];
-      configureFlags = [ "--with-v8js=${pkgs.v8}" ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = true;
-    };
-
     xdebug = callPackage ../development/php-packages/xdebug { };
 
     yaml = callPackage ../development/php-packages/yaml { };
-
-    zmq = buildPecl {
-      version = "1.1.3";
-      pname = "zmq";
-
-      sha256 = "1kj487vllqj9720vlhfsmv32hs2dy2agp6176mav6ldx31c3g4n4";
-
-      configureFlags = [
-        "--with-zmq=${pkgs.zeromq}"
-      ];
-
-      nativeBuildInputs = [ pkgs.pkg-config ];
-
-      meta.maintainers = lib.teams.php.members;
-      meta.broken = lib.versionAtLeast php.version "7.3";
-    };
   } // (let
     # Function to build a single php extension based on the php version.
     #

From d0bc04ff70c2849a0e58fb5199dcd04cb72d301b Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Thu, 3 Jun 2021 15:35:16 +0200
Subject: [PATCH 12/24] php: Upgrade from PHP 7.4 to 8.0 as default PHP

---
 .../doc/manual/from_md/release-notes/rl-2111.section.xml  | 2 +-
 nixos/doc/manual/release-notes/rl-2111.section.md         | 2 ++
 pkgs/applications/misc/rss-bridge-cli/default.nix         | 1 -
 pkgs/development/php-packages/couchbase/default.nix       | 2 +-
 pkgs/development/php-packages/php_excel/default.nix       | 3 ++-
 pkgs/top-level/all-packages.nix                           | 8 ++++----
 6 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index 5f7b1fc811c0..7ac120b693f0 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -17,7 +17,7 @@
     <itemizedlist spacing="compact">
       <listitem>
         <para>
-          PHP now defaults to PHP 8.0, updated from 7.4
+          PHP now defaults to PHP 8.0, updated from 7.4.
         </para>
       </listitem>
     </itemizedlist>
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 439437f5c09c..577d75929352 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -6,6 +6,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 ## Highlights
 
+* PHP now defaults to PHP 8.0, updated from 7.4.
+
 ## New Services
 
 * [geoipupdate](https://github.com/maxmind/geoipupdate), a GeoIP
diff --git a/pkgs/applications/misc/rss-bridge-cli/default.nix b/pkgs/applications/misc/rss-bridge-cli/default.nix
index 7550e6bcb95f..05d2bca99b1b 100644
--- a/pkgs/applications/misc/rss-bridge-cli/default.nix
+++ b/pkgs/applications/misc/rss-bridge-cli/default.nix
@@ -6,7 +6,6 @@ let
       curl
       filter
       iconv
-      json
       mbstring
       openssl
       simplexml
diff --git a/pkgs/development/php-packages/couchbase/default.nix b/pkgs/development/php-packages/couchbase/default.nix
index 24d4e02a3286..6d6bdf76e40c 100644
--- a/pkgs/development/php-packages/couchbase/default.nix
+++ b/pkgs/development/php-packages/couchbase/default.nix
@@ -14,7 +14,6 @@ buildPecl {
   };
 
   configureFlags = [ "--with-couchbase" ];
-  broken = lib.versionAtLeast php.version "8.0";
 
   buildInputs = [ libcouchbase zlib ];
   internalDeps = lib.optionals (lib.versionOlder php.version "8.0") [ php.extensions.json ];
@@ -45,5 +44,6 @@ buildPecl {
     '')
   ];
 
+  meta.broken = lib.versionAtLeast php.version "8.0";
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/pkgs/development/php-packages/php_excel/default.nix b/pkgs/development/php-packages/php_excel/default.nix
index 8b83f558a53a..4effddaed494 100644
--- a/pkgs/development/php-packages/php_excel/default.nix
+++ b/pkgs/development/php-packages/php_excel/default.nix
@@ -1,4 +1,4 @@
-{ buildPecl, fetchurl, lib, libxl }:
+{ buildPecl, fetchurl, lib, libxl, php }:
 let
   pname = "php_excel";
   phpVersion = "php7";
@@ -20,5 +20,6 @@ buildPecl {
     "--with-libxl-libdir=${libxl}/lib"
   ];
 
+  meta.broken = lib.versionAtLeast php.version "8.0";
   meta.maintainers = lib.teams.php.members;
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8a4661c18e3e..1adc52577e32 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1091,7 +1091,7 @@ in
   }) arangodb_3_3 arangodb_3_4 arangodb_3_5;
   arangodb = arangodb_3_4;
 
-  arcanist = callPackage ../development/tools/misc/arcanist {};
+  arcanist = callPackage ../development/tools/misc/arcanist { php = php74; };
 
   arduino = arduino-core.override { withGui = true; };
 
@@ -12288,7 +12288,7 @@ in
   # PHP interpreters, packages and extensions.
   #
   # Set default PHP interpreter, extensions and packages
-  php = php74;
+  php = php80;
   phpExtensions = php.extensions;
   phpPackages = php.packages;
 
@@ -19059,7 +19059,7 @@ in
 
   dspam = callPackage ../servers/mail/dspam { };
 
-  engelsystem = callPackage ../servers/web-apps/engelsystem { };
+  engelsystem = callPackage ../servers/web-apps/engelsystem { php = php74; };
 
   envoy = callPackage ../servers/http/envoy { };
 
@@ -24940,7 +24940,7 @@ in
 
   lrzsz = callPackage ../tools/misc/lrzsz { };
 
-  lsp-plugins = callPackage ../applications/audio/lsp-plugins { };
+  lsp-plugins = callPackage ../applications/audio/lsp-plugins { php = php74; };
 
   luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
 

From fb644190a0523d473129e3a86599ec50c2bafe77 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Thu, 3 Jun 2021 17:25:45 +0200
Subject: [PATCH 13/24] php: Drop package composer1

Composer2 has been stable for some time now.
---
 .../development/php-packages/composer/1.x.nix | 34 -------------------
 pkgs/top-level/php-packages.nix               |  2 --
 2 files changed, 36 deletions(-)
 delete mode 100644 pkgs/development/php-packages/composer/1.x.nix

diff --git a/pkgs/development/php-packages/composer/1.x.nix b/pkgs/development/php-packages/composer/1.x.nix
deleted file mode 100644
index 35cee92972e9..000000000000
--- a/pkgs/development/php-packages/composer/1.x.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ mkDerivation, fetchurl, makeWrapper, unzip, lib, php }:
-let
-  pname = "composer";
-  version = "1.10.22";
-in
-mkDerivation {
-  inherit pname version;
-
-  src = fetchurl {
-    url = "https://getcomposer.org/download/${version}/composer.phar";
-    sha256 = "00073smi1jja00d4bqfs6p4fqs38mki2ziy7b1kwsmiv5lcsw9v1";
-  };
-
-  dontUnpack = true;
-
-  nativeBuildInputs = [ makeWrapper ];
-
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/bin
-    install -D $src $out/libexec/composer/composer.phar
-    makeWrapper ${php}/bin/php $out/bin/composer \
-      --add-flags "$out/libexec/composer/composer.phar" \
-      --prefix PATH : ${lib.makeBinPath [ unzip ]}
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "Dependency Manager for PHP";
-    license = licenses.mit;
-    homepage = "https://getcomposer.org/";
-    maintainers = with maintainers; [ offline ] ++ teams.php.members;
-  };
-}
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index 04faacda3c59..5575c1d429cf 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -27,8 +27,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
     composer = callPackage ../development/php-packages/composer { };
 
-    composer1 = callPackage ../development/php-packages/composer/1.x.nix { };
-
     deployer = callPackage ../development/php-packages/deployer { };
 
     php-cs-fixer = callPackage ../development/php-packages/php-cs-fixer { };

From c76bebc549f2bd81bf5c70617d3d564a1ae6e8d1 Mon Sep 17 00:00:00 2001
From: Elis Hirwing <elis@hirwing.se>
Date: Thu, 3 Jun 2021 19:17:27 +0200
Subject: [PATCH 14/24] unit: Add php80 and use it as default

---
 nixos/tests/web-servers/unit-php.nix | 46 +++++++++++-----------------
 pkgs/servers/http/unit/default.nix   |  7 ++++-
 2 files changed, 24 insertions(+), 29 deletions(-)

diff --git a/nixos/tests/web-servers/unit-php.nix b/nixos/tests/web-servers/unit-php.nix
index c4e89f069f16..00512b506cc2 100644
--- a/nixos/tests/web-servers/unit-php.nix
+++ b/nixos/tests/web-servers/unit-php.nix
@@ -1,6 +1,6 @@
 import ../make-test-python.nix ({pkgs, ...}:
- let
-    testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
+let
+  testdir = pkgs.writeTextDir "www/info.php" "<?php phpinfo();";
 
 in {
   name = "unit-php-test";
@@ -9,37 +9,27 @@ in {
   machine = { config, lib, pkgs, ... }: {
     services.unit = {
       enable = true;
-      config = ''
-        {
-          "listeners": {
-            "*:9074": {
-              "application": "php_74"
-            }
-          },
-          "applications": {
-            "php_74": {
-              "type": "php 7.4",
-              "processes": 1,
-              "user": "testuser",
-              "group": "testgroup",
-              "root": "${testdir}/www",
-              "index": "info.php",
-              "options": {
-                "file": "${pkgs.unit.usedPhp74}/lib/php.ini"
-              }
-            }
-          }
-        }
-      '';
+      config = pkgs.lib.strings.toJSON {
+        listeners."*:9080".application = "php_80";
+        applications.php_80 = {
+          type = "php 8.0";
+          processes = 1;
+          user = "testuser";
+          group = "testgroup";
+          root = "${testdir}/www";
+          index = "info.php";
+          options.file = "${pkgs.unit.usedPhp80}/lib/php.ini";
+        };
+      };
     };
     users = {
       users.testuser = {
         isSystemUser = true;
-        uid = 1074;
+        uid = 1080;
         group = "testgroup";
       };
       groups.testgroup = {
-        gid= 1074;
+        gid = 1080;
       };
     };
   };
@@ -47,8 +37,8 @@ in {
     machine.wait_for_unit("unit.service")
 
     # Check so we get an evaluated PHP back
-    response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9074/")
-    assert "PHP Version ${pkgs.unit.usedPhp74.version}" in response, "PHP version not detected"
+    response = machine.succeed("curl -f -vvv -s http://127.0.0.1:9080/")
+    assert "PHP Version ${pkgs.unit.usedPhp80.version}" in response, "PHP version not detected"
 
     # Check so we have database and some other extensions loaded
     for ext in ["json", "opcache", "pdo_mysql", "pdo_pgsql", "pdo_sqlite"]:
diff --git a/pkgs/servers/http/unit/default.nix b/pkgs/servers/http/unit/default.nix
index d8e46231b74b..cb5fafd17cf7 100644
--- a/pkgs/servers/http/unit/default.nix
+++ b/pkgs/servers/http/unit/default.nix
@@ -2,7 +2,8 @@
 , pcre2
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP74 ? true, php74
+, withPHP74 ? false, php74
+, withPHP80 ? true, php80
 , withPerl530 ? false, perl530
 , withPerl532 ? true, perl532
 , withPerldevel ? false, perldevel
@@ -26,6 +27,7 @@ let
   };
 
   php74-unit = php74.override phpConfig;
+  php80-unit = php80.override phpConfig;
 
 in stdenv.mkDerivation rec {
   version = "1.24.0";
@@ -44,6 +46,7 @@ in stdenv.mkDerivation rec {
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
     ++ optional withPHP74 php74-unit
+    ++ optional withPHP80 php80-unit
     ++ optional withPerl530 perl530
     ++ optional withPerl532 perl532
     ++ optional withPerldevel perldevel
@@ -62,11 +65,13 @@ in stdenv.mkDerivation rec {
 
   # Optionally add the PHP derivations used so they can be addressed in the configs
   usedPhp74 = optionals withPHP74 php74-unit;
+  usedPhp80 = optionals withPHP80 php80-unit;
 
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
     ${optionalString withPHP74      "./configure php    --module=php74    --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
+    ${optionalString withPHP80      "./configure php    --module=php80    --config=${php80-unit.unwrapped.dev}/bin/php-config --lib-path=${php80-unit}/lib"}
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
     ${optionalString withPerl532    "./configure perl   --module=perl532  --perl=${perl532}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}

From 69e6ec23d2e49949e547eadafd372172084f2c31 Mon Sep 17 00:00:00 2001
From: upkeep-bot <foo@bar.com>
Date: Fri, 4 Jun 2021 09:19:11 +0000
Subject: [PATCH 15/24] plexamp: 3.4.6 -> 3.4.7

---
 pkgs/applications/audio/plexamp/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/audio/plexamp/default.nix b/pkgs/applications/audio/plexamp/default.nix
index 5a266580cf75..a7289cc35c81 100644
--- a/pkgs/applications/audio/plexamp/default.nix
+++ b/pkgs/applications/audio/plexamp/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "plexamp";
-  version = "3.4.6";
+  version = "3.4.7";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
     name="${pname}-${version}.AppImage";
-    sha512 = "M2iLJxpufycxnUfdn9f85l47W8HCsi/K0SPVsxyyaeKloV3g6yTyOg1luMwHBLDeXEKwR9jtuvPlIMNyBCFm8w==";
+    sha512 = "+jmx4X9KiK1Tv2Cjb/445MY9G2b7pLdKxFtBFMaQwRhqTItA33MfHqKBwmytmbEhxhy0LDTU2woJvEMPQCmnvg==";
   };
 
   appimageContents = appimageTools.extractType2 {
@@ -34,7 +34,7 @@ in appimageTools.wrapType2 {
   meta = with lib; {
     description = "A beautiful Plex music player for audiophiles, curators, and hipsters";
     homepage = "https://plexamp.com/";
-    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/28";
+    changelog = "https://forums.plex.tv/t/plexamp-release-notes/221280/29";
     license = licenses.unfree;
     maintainers = with maintainers; [ killercup synthetica ];
     platforms = [ "x86_64-linux" ];

From 24c6e52af80ed02661b8a638b9d324d281aa41fe Mon Sep 17 00:00:00 2001
From: oxalica <oxalicc@pm.me>
Date: Fri, 4 Jun 2021 20:01:22 +0800
Subject: [PATCH 16/24] osu-lazer: 2021.515.0 -> 2021.602.0

---
 pkgs/games/osu-lazer/default.nix |   4 +-
 pkgs/games/osu-lazer/deps.nix    | 267 +++++++++++++++++--------------
 2 files changed, 148 insertions(+), 123 deletions(-)

diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix
index 827eb89eba99..4cde6b032ee2 100644
--- a/pkgs/games/osu-lazer/default.nix
+++ b/pkgs/games/osu-lazer/default.nix
@@ -16,13 +16,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "osu-lazer";
-  version = "2021.515.0";
+  version = "2021.602.0";
 
   src = fetchFromGitHub {
     owner = "ppy";
     repo = "osu";
     rev = version;
-    sha256 = "c2+Ybb9wMb9FSTxprJPLKGEv2q6y0jcMA4kEN2r7yyA=";
+    sha256 = "t9Byn3eAAkxnBQBfdvz2CGGXu8d3JzTnSz7I68Ntp3A=";
   };
 
   patches = [ ./bypass-tamper-detection.patch ];
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index 170a0497adfe..0b6579bae064 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -24,240 +24,260 @@
     version = "1.2.1.1";
     sha256 = "1zkndglmz0s8rblfhnqcvv90rkq2i7lf4bc380g7z8h1avf2ikll";
   })
+  (fetchNuGet {
+    name = "HtmlAgilityPack";
+    version = "1.11.33";
+    sha256 = "08valqp6hzdfy532kv70fgzhizyc3xs9y0sw0rsr3z2h7pk1vp6n";
+  })
   (fetchNuGet {
     name = "Humanizer";
-    version = "2.8.26";
-    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
+    version = "2.10.1";
+    sha256 = "0bcs3vp028dq7hs0dxvqynichgbnhzwdx61phwl8yvls15hav05c";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.10.1";
+    sha256 = "1vn52y8pkg8ny7sz83nag4cwmna61jscs2n68bx7x4xkgialzhzy";
   })
   (fetchNuGet {
     name = "Humanizer.Core";
     version = "2.2.0";
     sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
   })
-  (fetchNuGet {
-    name = "Humanizer.Core";
-    version = "2.8.26";
-    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
-  })
   (fetchNuGet {
     name = "Humanizer.Core.af";
-    version = "2.8.26";
-    sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9";
+    version = "2.10.1";
+    sha256 = "0a7x11kprn650kk3qzhsncyfxazwanqwmrizkxbzyc29y46bmsr3";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ar";
-    version = "2.8.26";
-    sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7";
+    version = "2.10.1";
+    sha256 = "0k40zj3jpscv0k780x5p8cc45ivd8pla1hqz8416qgywg9kc6b7z";
   })
   (fetchNuGet {
     name = "Humanizer.Core.az";
-    version = "2.8.26";
-    sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6";
+    version = "2.10.1";
+    sha256 = "1djhspqlxj6qys915bd8is1hfy87ykrpxpjwlwsw2gvrrc74p16c";
   })
   (fetchNuGet {
     name = "Humanizer.Core.bg";
-    version = "2.8.26";
-    sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg";
+    version = "2.10.1";
+    sha256 = "1z89a9sc3ny2bm2h3g8cnb6c77q2yhh4wmi18yj98y6irdmimn16";
   })
   (fetchNuGet {
     name = "Humanizer.Core.bn-BD";
-    version = "2.8.26";
-    sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9";
+    version = "2.10.1";
+    sha256 = "17cwk09h3fkjl76z0w3ihj3448h8lchf3l9l10zrjisjf918mxp8";
   })
   (fetchNuGet {
     name = "Humanizer.Core.cs";
-    version = "2.8.26";
-    sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6";
+    version = "2.10.1";
+    sha256 = "0403f5mbyzyjw8jm988rbw2xim353rd4lc0pnkdcn7qlhcrm3gbj";
   })
   (fetchNuGet {
     name = "Humanizer.Core.da";
-    version = "2.8.26";
-    sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m";
+    version = "2.10.1";
+    sha256 = "0am71dkxyzh40vqb7aa9k6p8whh4fwdrrwwjar9vc3c49wnw7nky";
   })
   (fetchNuGet {
     name = "Humanizer.Core.de";
-    version = "2.8.26";
-    sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22";
+    version = "2.10.1";
+    sha256 = "027iydimqnx5r7lw0661zyz41kd4nh6sxx75dmh9lcgawz8h8agy";
   })
   (fetchNuGet {
     name = "Humanizer.Core.el";
-    version = "2.8.26";
-    sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb";
+    version = "2.10.1";
+    sha256 = "1k3g4ffv51da0p12xg7mw21zm6hdvz28x1vaqpspyb156042vxqq";
   })
   (fetchNuGet {
     name = "Humanizer.Core.es";
-    version = "2.8.26";
-    sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q";
+    version = "2.10.1";
+    sha256 = "0rv3b39hwc1spb0r036sjcn8hkl9bfaka1p8bdh7zsnq21674pqb";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fa";
-    version = "2.8.26";
-    sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1";
+    version = "2.10.1";
+    sha256 = "0v3ccydbf9cpv54lk65fqaiq1lfzz6cnxq0wyaa5014axwh9h8nn";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fi-FI";
-    version = "2.8.26";
-    sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd";
+    version = "2.10.1";
+    sha256 = "0gvm0g24ccrk6081sz2ligbskn5rv2i0bfarndhf5k12zwvx0y67";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fr";
-    version = "2.8.26";
-    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
+    version = "2.10.1";
+    sha256 = "1307byhrygg45vrba5h30gmr94zp8spxqy75xi482y5va6vxv778";
   })
   (fetchNuGet {
     name = "Humanizer.Core.fr-BE";
-    version = "2.8.26";
-    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
+    version = "2.10.1";
+    sha256 = "11mdqwz3nx3a9rval2y9vhxyrfzas2rasbilljky3k893anrpr36";
   })
   (fetchNuGet {
     name = "Humanizer.Core.he";
-    version = "2.8.26";
-    sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk";
+    version = "2.10.1";
+    sha256 = "1rvzgh6hky9gl55625a7pjd8n9rai4vxl05qbjg3icg86a27ia9b";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hr";
-    version = "2.8.26";
-    sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9";
+    version = "2.10.1";
+    sha256 = "1adm2k7ydgbdhvy1wpilhclg3xvcbvcynh4g3qhl1zk7kpicwzy1";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hu";
-    version = "2.8.26";
-    sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y";
+    version = "2.10.1";
+    sha256 = "19kznch1wm6pyy4dbinp0zn991s84ak4x9hpq9sjhd60azrc9vr9";
   })
   (fetchNuGet {
     name = "Humanizer.Core.hy";
-    version = "2.8.26";
-    sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3";
+    version = "2.10.1";
+    sha256 = "047427rspi90rbhzmzanfqkn6rzcgvnnhbn7h923kg07d4lky6l7";
   })
   (fetchNuGet {
     name = "Humanizer.Core.id";
-    version = "2.8.26";
-    sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn";
+    version = "2.10.1";
+    sha256 = "0r3spq1in5y7dxkp3yk5695csair5w0jrc0xjlicqadgfk9j809f";
   })
   (fetchNuGet {
     name = "Humanizer.Core.it";
-    version = "2.8.26";
-    sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l";
+    version = "2.10.1";
+    sha256 = "1191qns3gpbq45phhaz9vy5bj0cdmznn3c2zgl4pn323knhgjfxf";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ja";
-    version = "2.8.26";
-    sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5";
+    version = "2.10.1";
+    sha256 = "0a0gf2vkgnqyxa3fxzs7pq6almpzv6a53bi7yhn9w4ki1jqjjv6v";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ko-KR";
+    version = "2.10.1";
+    sha256 = "0x9x7134f8ikbvvalahrb3q080w2zxd9dx0k32gd10axcvqpgxq3";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ku";
+    version = "2.10.1";
+    sha256 = "0ry4fjfvwp13p1qq8hjykg60ga0vxirdl7l7czj56lwj29ll8zqa";
   })
   (fetchNuGet {
     name = "Humanizer.Core.lv";
-    version = "2.8.26";
-    sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv";
+    version = "2.10.1";
+    sha256 = "1v08ds9r2k7vx5b2rw9swc3gxfj7mb9r2as0sqg5n2wy04w9ki5j";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ms-MY";
-    version = "2.8.26";
-    sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc";
+    version = "2.10.1";
+    sha256 = "0cfb7wmffbwdv8w7j082mc3z59cj3hh6rnnii55wfrbziv1ci5yz";
   })
   (fetchNuGet {
     name = "Humanizer.Core.mt";
-    version = "2.8.26";
-    sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px";
+    version = "2.10.1";
+    sha256 = "1pn00dmn1k3jp0s23rfzv8sj7fdbmy0i45ls0agvy1wxxjyg7cn9";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nb";
-    version = "2.8.26";
-    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
+    version = "2.10.1";
+    sha256 = "122b1wk8acnc7sm8bs3ww9kl6z8sw0ym7y1ar9wyiw9aw36a94f3";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nb-NO";
-    version = "2.8.26";
-    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
+    version = "2.10.1";
+    sha256 = "0mry95z4ch5bdl71k88wsswmcdxsckhp3d578l9fwy8kgj7dg597";
   })
   (fetchNuGet {
     name = "Humanizer.Core.nl";
-    version = "2.8.26";
-    sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk";
+    version = "2.10.1";
+    sha256 = "03cm6vfsi5rgnc456b07vc7h3rfn3qjxfykq8f6cq61z1xgh9i53";
   })
   (fetchNuGet {
     name = "Humanizer.Core.pl";
-    version = "2.8.26";
-    sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x";
+    version = "2.10.1";
+    sha256 = "1gsrfp8d3ay5kra95sk0sy8vcak0ncxmddpwh9vw2sdhlj453bzx";
   })
   (fetchNuGet {
     name = "Humanizer.Core.pt";
-    version = "2.8.26";
-    sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p";
+    version = "2.10.1";
+    sha256 = "1z9asjsng8njvi8vr5ryklwdrfmgkjk2knd8q3hkf0k1zj4bkhsf";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ro";
-    version = "2.8.26";
-    sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0";
+    version = "2.10.1";
+    sha256 = "0r8b1yl5dby56x6q0vgkzdnb08q3ar9kvnqz7pxfld9zh03k0snp";
   })
   (fetchNuGet {
     name = "Humanizer.Core.ru";
-    version = "2.8.26";
-    sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg";
+    version = "2.10.1";
+    sha256 = "1nqgscy7wqfbpld3bb6g1hwy2zdl88as1kxcflfiyysmnysavviz";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sk";
-    version = "2.8.26";
-    sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j";
+    version = "2.10.1";
+    sha256 = "0wk4a7g87s26da57a4srwnmhm9d2x68afn961lkd2anz8wixr97x";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sl";
-    version = "2.8.26";
-    sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n";
+    version = "2.10.1";
+    sha256 = "1vsjl6nbk2mxlvkk0zi0igzmfxfhr3jmnnx8ljwpz8a501svksxl";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sr";
-    version = "2.8.26";
-    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
+    version = "2.10.1";
+    sha256 = "03n64v7hl9awvq06y94wc0czqqf5nrw0d0k7xyx0l3lgw02jpgy2";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sr-Latn";
-    version = "2.8.26";
-    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
+    version = "2.10.1";
+    sha256 = "0yw5k8g4672kcaia82aq36asjkjlkssi8lkkjn35hn9spq5734lc";
   })
   (fetchNuGet {
     name = "Humanizer.Core.sv";
-    version = "2.8.26";
-    sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm";
+    version = "2.10.1";
+    sha256 = "1n0631ka9cdikjyw9kr3vqwgd33g83chdabra50hnwcrykkigy4f";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.th-TH";
+    version = "2.10.1";
+    sha256 = "0s1v0sap22xzqis95wmg66vriaavf6fgk8hcpm3as185dn37gxwn";
   })
   (fetchNuGet {
     name = "Humanizer.Core.tr";
-    version = "2.8.26";
-    sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn";
+    version = "2.10.1";
+    sha256 = "063qr62a8cqa82xc3calv37x6d5v29wdssmrq9b7pas60vd5n7yd";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uk";
-    version = "2.8.26";
-    sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw";
+    version = "2.10.1";
+    sha256 = "0n0zh9z19fwbb0dbpdld6jzydmwv7zj0nf2x0vpilrhcdhd4icfm";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uz-Cyrl-UZ";
-    version = "2.8.26";
-    sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8";
+    version = "2.10.1";
+    sha256 = "1q6z6c4hkxi5kq13k5qm6i6dx2namkdsysb09jvkvj2vl54gj074";
   })
   (fetchNuGet {
     name = "Humanizer.Core.uz-Latn-UZ";
-    version = "2.8.26";
-    sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f";
+    version = "2.10.1";
+    sha256 = "1758m8b2kv1k5r26al9x4vhss1f7b7yhk971b41zqapw7z66sgmx";
   })
   (fetchNuGet {
     name = "Humanizer.Core.vi";
-    version = "2.8.26";
-    sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch";
+    version = "2.10.1";
+    sha256 = "1z45zd7gpx20zaaxrv9ac6v0ig0s3d80nxdiig2pm1zrlx01ps33";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-CN";
-    version = "2.8.26";
-    sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s";
+    version = "2.10.1";
+    sha256 = "02pdpzzwk4wnj1bvzl059ndh67i5yx5ab8ayq5qkrg2hfkid9nn5";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-Hans";
-    version = "2.8.26";
-    sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy";
+    version = "2.10.1";
+    sha256 = "1pm73sl5s1axzmwks68kdyskyv183z5yy020bhzcf0rwbrv3s2qi";
   })
   (fetchNuGet {
     name = "Humanizer.Core.zh-Hant";
-    version = "2.8.26";
-    sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh";
+    version = "2.10.1";
+    sha256 = "0fxyl2m05qgmnycdsbzv2dyzixq4jqnvvx7al87d6v5rvkrzwgik";
   })
   (fetchNuGet {
     name = "JetBrains.Annotations";
@@ -301,53 +321,53 @@
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Connections.Abstractions";
-    version = "5.0.5";
-    sha256 = "0qi4q54v7qiyc7xjbby88vmg1zcnb39sg8g1s7h0dnvapa436jv5";
+    version = "5.0.6";
+    sha256 = "1ggvdz6sq668w8nv99qg9pi2i3vx0vihfybjbyyywjgjppq93y8l";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Connections.Client";
-    version = "5.0.5";
-    sha256 = "1lpsjv6475p2vdvwv9wwmpzxc0r9bfya15nc5xqiv8m9z8d4sxlh";
+    version = "5.0.6";
+    sha256 = "16xzbs1mvbgzblzmzxznr4fpkwk9lz318rnscj7498k1dmk972s4";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Connections.Common";
-    version = "5.0.5";
-    sha256 = "1knfn9d1wsczaic3vlnracmj5frpaxwx15x7j06kgi2kl6j2hbc7";
+    version = "5.0.6";
+    sha256 = "1zqvmcb1zc704zf246byhf3sm1isixrdr4hlrqpss7zwd89vznv3";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.Http.Features";
-    version = "5.0.5";
-    sha256 = "011xdkqna8q0r2h9i1f646rkfjbl9qbaq56a487zagp8plwxvaxl";
+    version = "5.0.6";
+    sha256 = "18y9np24ybhzgv5lmaaah98l9s53c07lawld4y3nnngy4a2l8byq";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Client";
-    version = "5.0.5";
-    sha256 = "0r16n5c4im7gkfrhx2miiz9w58j0z87wjysbi4rsdav94hmkvgj4";
+    version = "5.0.6";
+    sha256 = "0vyqd11b02vfh1xbkq01z4nsj73rqnjpms1xm461x2p1yajs3792";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Client.Core";
-    version = "5.0.5";
-    sha256 = "11phwns2sn44vfd3vn6c0lh3aiiysfpav7rmv4cmjkxp3jmpay8r";
+    version = "5.0.6";
+    sha256 = "0q2fcz6g1jqiwqy05va26wf6mn7vjd915igaiqgmhqzjc2rgif88";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Common";
-    version = "5.0.5";
-    sha256 = "0am84ckim30djh4inv7mqph50axik79dwbfyrzlnaxcd3jr73c8c";
+    version = "5.0.6";
+    sha256 = "1apa35dffb29w9fj79ypdyvwkz37v04bbsl51hxrx1pa66jj4ymx";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.Json";
-    version = "5.0.5";
-    sha256 = "1z8d2dsgj9bh9a2xcz5xlrw4iijgmrm1midkdqni9b4nypbyraf6";
+    version = "5.0.6";
+    sha256 = "1yr94d8yry7i22a2zvcan7rr9lwbx298lz7k6wsgscj1isg5nrr7";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack";
-    version = "5.0.5";
-    sha256 = "0p52j1mrihvm4y4yp2rnimp4vdypn0hbba0p79vp617jj17vs45l";
+    version = "5.0.6";
+    sha256 = "1asz4kaa0c42z8lgsh6ywn0399v1w8axvhxjbb6m39w9xq596rdr";
   })
   (fetchNuGet {
     name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson";
-    version = "5.0.5";
-    sha256 = "0jllzr9sba5m9ccdslr4dysmxzrfzy9zvianmqhmj4is6dg2krfs";
+    version = "5.0.6";
+    sha256 = "1l5bl8zqw9wnincd7yxghik0k3yzip02zz26bah7mwyqaf4nhbma";
   })
   (fetchNuGet {
     name = "Microsoft.Bcl.AsyncInterfaces";
@@ -729,10 +749,15 @@
     version = "0.5.3.1";
     sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br";
   })
+  (fetchNuGet {
+    name = "ppy.LocalisationAnalyser";
+    version = "2021.525.0";
+    sha256 = "1h8p8d1xk03904fifhi77zrjkh4sknp4mxjqd3nbpfyikd8f7c8p";
+  })
   (fetchNuGet {
     name = "ppy.osu.Framework";
-    version = "2021.513.0";
-    sha256 = "17cqmgfd40jbdkm5rq9wl1rcvv870yqryc29k4c8bdsvxxf4arv2";
+    version = "2021.601.0";
+    sha256 = "0y17s60r4q0c05gm67fmp700zwb7k74xdi45hprblyxsplnbkmi0";
   })
   (fetchNuGet {
     name = "ppy.osu.Framework.NativeLibs";
@@ -741,8 +766,8 @@
   })
   (fetchNuGet {
     name = "ppy.osu.Game.Resources";
-    version = "2021.422.0";
-    sha256 = "1zw0197k6wmmjqjh022q3302mrwn59msx06y66378pahmhrr0sjc";
+    version = "2021.525.0";
+    sha256 = "15ksxv5fasfzdkmwikjbn17c1d4rssjfm2vp71b7m834ghm6pnbd";
   })
   (fetchNuGet {
     name = "ppy.osuTK.NS20";
@@ -866,8 +891,8 @@
   })
   (fetchNuGet {
     name = "Sentry";
-    version = "3.3.4";
-    sha256 = "188rlyg6xfmgk6ypyg1mmbvm8d64q3wfjn3h0ays73b9wlypk8x6";
+    version = "3.4.0";
+    sha256 = "0yivi1gmay29831parvsy4x9kzbv04754l0lgzv0v0p4l8m1gy6s";
   })
   (fetchNuGet {
     name = "SharpCompress";

From 5eff2dc0a6682c42687bc7aae093d54156a90cb8 Mon Sep 17 00:00:00 2001
From: 06kellyjac <dev@j-k.io>
Date: Fri, 4 Jun 2021 13:39:01 +0100
Subject: [PATCH 17/24] open-policy-agent: 0.28.0 -> 0.29.4

---
 pkgs/development/tools/open-policy-agent/default.nix | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index eb9bd6de5dc4..739a562227a8 100644
--- a/pkgs/development/tools/open-policy-agent/default.nix
+++ b/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "open-policy-agent";
-  version = "0.28.0";
+  version = "0.29.4";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-khXcpV4bPfFwoQ4LrHFohhlTHOIDClZuE3qg+MYk36k=";
+    sha256 = "sha256-AjNr+t30ftF92+cEfvt8iHBDVD/SO52ojJRLAkYF9l4=";
   };
 
   vendorSha256 = null;
@@ -28,6 +28,8 @@ buildGoModule rec {
   '';
 
   meta = with lib; {
+    homepage = "https://www.openpolicyagent.org";
+    changelog = "https://github.com/open-policy-agent/opa/blob/v${version}/CHANGELOG.md";
     description = "General-purpose policy engine";
     longDescription = ''
       The Open Policy Agent (OPA, pronounced "oh-pa") is an open source, general-purpose policy engine that unifies
@@ -35,7 +37,6 @@ buildGoModule rec {
       as code and simple APIs to offload policy decision-making from your software. You can use OPA to enforce policies
       in microservices, Kubernetes, CI/CD pipelines, API gateways, and more.
     '';
-    homepage = "https://www.openpolicyagent.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ lewo jk ];
   };

From 8717ae4eb5009bf502bdea38d750ee7671462faa Mon Sep 17 00:00:00 2001
From: 06kellyjac <dev@j-k.io>
Date: Fri, 4 Jun 2021 13:50:38 +0100
Subject: [PATCH 18/24] terragrunt: 0.29.4 -> 0.29.8

---
 pkgs/applications/networking/cluster/terragrunt/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index 9455121066de..f1e23908723a 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.29.4";
+  version = "0.29.8";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/LWzUVZAr4zw8mekcHybNuqe0wv4ZU8UcE0oGxq6jqY=";
+    sha256 = "sha256-zHfY1pl9r9N1Jx9TzbOFYt2VR9hvHWcdFhPc36Q3apE=";
   };
 
   vendorSha256 = "sha256-qlSCQtiGHmlk3DyETMoQbbSYhuUSZTsvAnBKuDJI8x8=";

From 82d1d45028dee3dea305f41960d219fd24bfa742 Mon Sep 17 00:00:00 2001
From: 06kellyjac <dev@j-k.io>
Date: Fri, 4 Jun 2021 14:44:17 +0100
Subject: [PATCH 19/24] waypoint: 0.3.2 -> 0.4.0

---
 .../applications/networking/cluster/waypoint/default.nix | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/networking/cluster/waypoint/default.nix b/pkgs/applications/networking/cluster/waypoint/default.nix
index 2a534c2fb891..3675aba028c8 100644
--- a/pkgs/applications/networking/cluster/waypoint/default.nix
+++ b/pkgs/applications/networking/cluster/waypoint/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "waypoint";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-57DHImPYVFK+MXWGeArvc5fwHmqa3zodLytfDoAxglo=";
+    sha256 = "sha256-yeD7XtcB/2ph6cCnOcv0yFQqvAMPDLXMrUWWkgmBUaA=";
   };
 
   deleteVendor = true;
-  vendorSha256 = "sha256-HxrY35SqfUbT6VCCXkLUjAsxgtMzpOeoicAGLwD2OyA=";
+  vendorSha256 = "sha256-xZGYPh3Yp3g22GraYfMESVpp7j5fOZASUEvN4YaDd1g=";
 
   nativeBuildInputs = [ go-bindata installShellFiles ];
 
@@ -31,6 +31,9 @@ buildGoModule rec {
     local INSTALL="$out/bin/waypoint"
     install -D waypoint $out/bin/waypoint
 
+    # waypoint's completion install command alters your <something>rc files
+    # below is the equivalent of what it injects
+
     # Write to a file as it doesn't like EOF within <()
     cat > waypoint.fish <<EOF
     function __complete_waypoint

From b6f4313e4afbe6b0ffdf16e5f65561e52c4dd35e Mon Sep 17 00:00:00 2001
From: Stephen Morgan <morgan.stephen99@gmail.com>
Date: Fri, 4 Jun 2021 23:48:27 +1000
Subject: [PATCH 20/24] geogebra: 5-0-620-0 -> 5-0-644-0

---
 pkgs/applications/science/math/geogebra/default.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index fa2724469b66..eb98b3ad20c5 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeDesktopItem, makeWrapper, unzip, language ? "en_US" }:
 let
   pname = "geogebra";
-  version = "5-0-620-0";
+  version = "5-0-644-0";
 
   srcIcon = fetchurl {
     url = "http://static.geogebra.org/images/geogebra-logo.svg";
@@ -41,9 +41,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
-        "http://web.archive.org/web/20210101213140/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
+        "https://web.archive.org/web/20210604132513/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
       ];
-      sha256 = "0v4r76b91cj0pns78gh3d432g2jlq2pz37lslg3fnnpvlfh25s9j";
+      sha256 = "dd992654175812d8770d94f063fc1430a743e8e0efcae03f51bf9a3a073c2522";
     };
 
     nativeBuildInputs = [ makeWrapper ];

From f12d58f223490011f0eb7218054c0ef24ad050b6 Mon Sep 17 00:00:00 2001
From: Stephen Morgan <morgan.stephen99@gmail.com>
Date: Fri, 4 Jun 2021 23:49:04 +1000
Subject: [PATCH 21/24] geogebra6: 6-0-631-0 -> 6-0-644-0

---
 pkgs/applications/science/math/geogebra/geogebra6.nix | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
index 20708004158b..8163fe5478fa 100644
--- a/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
 let
   pname = "geogebra";
-  version = "6-0-631-0";
+  version = "6-0-644-0";
 
   srcIcon = geogebra.srcIcon;
   desktopItem = geogebra.desktopItem;
@@ -18,9 +18,9 @@ let
     src = fetchurl {
       urls = [
         "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
-        "https://web.archive.org/web/20210406083122/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20210604132845/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
       ];
-      sha256 = "1k4jxcvxxjxfrdghs4a29zpp4yid2vh1mfgp8xxr3qlzxnqv92ha";
+      sha256 = "bbe9e1a35abacfd560c0b7aa1ab975853e6adac08608bb70cd80261179e3f922";
     };
 
     dontConfigure = true;

From 699f8a215cb717d35c066b0dfc7a9a1f04417b8b Mon Sep 17 00:00:00 2001
From: Roosemberth Palacios <roosemberth@users.noreply.github.com>
Date: Fri, 4 Jun 2021 16:58:37 +0200
Subject: [PATCH 22/24] maintainers: update roosemberth's mail and add gpg key
 (#125667)

The previous email account no longer exists.

Signed-off-by: Roosembert Palacios <roosemberth@posteo.ch>
---
 maintainers/maintainer-list.nix | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index a4d133b36437..6572d6b9914e 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -8778,10 +8778,14 @@
     }];
   };
   roosemberth = {
-    email = "roosembert.palacios+nixpkgs@gmail.com";
+    email = "roosembert.palacios+nixpkgs@posteo.ch";
     github = "roosemberth";
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
+    keys = [{
+      longkeyid = "rsa2048/0xCAAAECE5C2242BB7";
+      fingerprint = "78D9 1871 D059 663B 6117  7532 CAAA ECE5 C224 2BB7";
+    }];
   };
   rople380 = {
     name = "rople380";

From 6f1857f2f2d12dcc7e46bff55540af1dcae578c6 Mon Sep 17 00:00:00 2001
From: Florian Klink <flokli@flokli.de>
Date: Fri, 4 Jun 2021 18:20:38 +0200
Subject: [PATCH 23/24] terraform-providers.metal: init at 2.1.0 (#125665)

terraform-provider-packet is deprecated, and this is its successor.
---
 .../networking/cluster/terraform-providers/providers.json  | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index 929c3a27c67f..252b6272703e 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -607,6 +607,13 @@
     "sha256": "1nq7k8qa7rv8xyryjigwpwcwvj1sw85c4j46rkfdv70b6js25jz3",
     "version": "0.3.0"
   },
+  "metal": {
+    "owner": "equinix",
+    "repo": "terraform-provider-metal",
+    "rev": "v2.1.0",
+    "sha256": "06i3rj6ig8hxbncdpa8b11v8pr3zhi90ppmf77jjin1114ikd172",
+    "version": "2.1.0"
+  },
   "metalcloud": {
     "owner": "terraform-providers",
     "repo": "terraform-provider-metalcloud",

From ee6268cdc89a4526b1e518a181d4c7d1ae5cfa14 Mon Sep 17 00:00:00 2001
From: Arthur Gautier <baloo@superbaloo.net>
Date: Fri, 4 Jun 2021 16:51:42 +0000
Subject: [PATCH 24/24] diffoscope: 176 -> 177

Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
---
 pkgs/tools/misc/diffoscope/default.nix | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index 21a02f1e99c7..e57caa8cc7f8 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "176";
+  version = "177";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-Hr3GNgpvKCLs+HA8QLOewh5nz9npZr5MZ65wRrat7l0=";
+    sha256 = "sha256-yTOaDhAKtMhQYxolALnuc7FuXoMUOhjmsabtS1FeW/Q=";
   };
 
   outputs = [ "out" "man" ];