summary refs log tree commit diff
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2021-11-05 12:01:17 +0000
committerGitHub <noreply@github.com>2021-11-05 12:01:17 +0000
commit2663e5b623f6bbe6155a8d79b5996e4c27f42d8f (patch)
tree5b4b2884c39e7669a27b3c9bcb5e73660241f21b
parent555a4016a2c052270489b8307f8ae650349ffc23 (diff)
parent6d6ab8e9ce9764b44a6324965927e81eaef49436 (diff)
downloadnixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar.gz
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar.bz2
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar.lz
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar.xz
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.tar.zst
nixpkgs-2663e5b623f6bbe6155a8d79b5996e4c27f42d8f.zip
Merge master into staging-next
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2111.section.xml56
-rw-r--r--nixos/doc/manual/release-notes/rl-2111.section.md10
-rw-r--r--nixos/modules/hardware/video/nvidia.nix4
-rw-r--r--nixos/modules/services/cluster/hadoop/conf.nix1
-rw-r--r--nixos/modules/services/cluster/hadoop/default.nix42
-rw-r--r--nixos/modules/services/cluster/hadoop/hdfs.nix117
-rw-r--r--nixos/modules/services/cluster/hadoop/yarn.nix23
-rw-r--r--nixos/modules/services/networking/unifi.nix80
-rw-r--r--nixos/modules/virtualisation/vmware-guest.nix6
-rw-r--r--nixos/tests/deluge.nix33
-rw-r--r--nixos/tests/hadoop/hadoop.nix240
-rw-r--r--nixos/tests/hadoop/hdfs.nix38
-rw-r--r--nixos/tests/hadoop/yarn.nix15
-rw-r--r--pkgs/data/icons/kora-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/development/compilers/ghc/9.2.1.nix18
-rw-r--r--pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch14
-rw-r--r--pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix55
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix11
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml16
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml12
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml21
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1527
-rw-r--r--pkgs/development/haskell-modules/make-package-set.nix2
-rw-r--r--pkgs/development/python-modules/aiopvpc/default.nix11
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix4
-rw-r--r--pkgs/development/python-modules/holidays/default.nix12
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix9
-rw-r--r--pkgs/development/tools/analysis/sparse/default.nix4
-rw-r--r--pkgs/development/tools/haskell/hyper-haskell/default.nix3
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix2
-rw-r--r--pkgs/games/nudoku/default.nix11
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh12
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix2
-rw-r--r--pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix4
-rw-r--r--pkgs/tools/admin/awscli2/default.nix29
-rw-r--r--pkgs/tools/networking/ngrep/default.nix2
-rw-r--r--pkgs/tools/nix/statix/default.nix6
-rw-r--r--pkgs/top-level/release-haskell.nix2
42 files changed, 1847 insertions, 632 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 741d238f6bf..52b57596d54 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
@@ -52,6 +52,29 @@
       </listitem>
       <listitem>
         <para>
+          Improvements have been made to the Hadoop module and package:
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              HDFS and YARN now support production-ready highly
+              available deployments with automatic failover.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              Hadoop now defaults to Hadoop 3, updated from 2.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              JournalNode, ZKFS and HTTPFS services have been added.
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
+      <listitem>
+        <para>
           Activation scripts can now opt int to be run when running
           <literal>nixos-rebuild dry-activate</literal> and detect the
           dry activation by reading <literal>$NIXOS_ACTION</literal>.
@@ -1802,6 +1825,39 @@ Superuser created successfully.
           </listitem>
         </itemizedlist>
       </listitem>
+      <listitem>
+        <para>
+          The
+          <link xlink:href="options.html#opt-services.unifi.enable">services.unifi</link>
+          module has been reworked, solving a number of issues. This
+          leads to several user facing changes:
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              The <literal>services.unifi.dataDir</literal> option is
+              removed and the data is now always located under
+              <literal>/var/lib/unifi/data</literal>. This is done to
+              make better use of systemd state direcotiry and thus
+              making the service restart more reliable.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The unifi logs can now be found under:
+              <literal>/var/log/unifi</literal> instead of
+              <literal>/var/lib/unifi/logs</literal>.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              The unifi run directory can now be found under:
+              <literal>/run/unifi</literal> instead of
+              <literal>/var/lib/unifi/run</literal>.
+            </para>
+          </listitem>
+        </itemizedlist>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index 5bb72e16ed2..1d567ff7f12 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -18,6 +18,11 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - spark now defaults to spark 3, updated from 2. A [migration guide](https://spark.apache.org/docs/latest/core-migration-guide.html#upgrading-from-core-24-to-30) is available.
 
+- Improvements have been made to the Hadoop module and package:
+  - HDFS and YARN now support production-ready highly available deployments with automatic failover.
+  - Hadoop now defaults to Hadoop 3, updated from 2.
+  - JournalNode, ZKFS and HTTPFS services have been added.
+
 - Activation scripts can now opt int to be run when running `nixos-rebuild dry-activate` and detect the dry activation by reading `$NIXOS_ACTION`.
   This allows activation scripts to output what they would change if the activation was really run.
   The users/modules activation script supports this and outputs some of is actions.
@@ -506,3 +511,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 - Dokuwiki now supports caddy! However
   - the nginx option has been removed, in the new configuration, please use the `dokuwiki.webserver = "nginx"` instead.
   - The "${hostname}" option has been deprecated, please use `dokuwiki.sites = [ "${hostname}" ]` instead
+
+- The [services.unifi](options.html#opt-services.unifi.enable) module has been reworked, solving a number of issues. This leads to several user facing changes:
+  - The `services.unifi.dataDir` option is removed and the data is now always located under `/var/lib/unifi/data`. This is done to make better use of systemd state direcotiry and thus making the service restart more reliable.
+  - The unifi logs can now be found under: `/var/log/unifi` instead of `/var/lib/unifi/logs`.
+  - The unifi run directory can now be found under: `/run/unifi` instead of `/var/lib/unifi/run`.
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index 8f6b5c22ea4..917c6d3013e 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -284,6 +284,10 @@ in
       source = "${nvidia_x11.bin}/share/nvidia/nvidia-application-profiles-rc";
     };
 
+    # 'nvidia_x11' installs it's files to /run/opengl-driver/...
+    environment.etc."egl/egl_external_platform.d".source =
+      "/run/opengl-driver/share/egl/egl_external_platform.d/";
+
     hardware.opengl.package = mkIf (!offloadCfg.enable) nvidia_x11.out;
     hardware.opengl.package32 = mkIf (!offloadCfg.enable) nvidia_x11.lib32;
     hardware.opengl.extraPackages = optional offloadCfg.enable nvidia_x11.out;
diff --git a/nixos/modules/services/cluster/hadoop/conf.nix b/nixos/modules/services/cluster/hadoop/conf.nix
index 69472408cab..0caec5cfc20 100644
--- a/nixos/modules/services/cluster/hadoop/conf.nix
+++ b/nixos/modules/services/cluster/hadoop/conf.nix
@@ -35,6 +35,7 @@ pkgs.runCommand "hadoop-conf" {} ''
   cp ${siteXml "hdfs-site.xml" cfg.hdfsSite}/* $out/
   cp ${siteXml "mapred-site.xml" cfg.mapredSite}/* $out/
   cp ${siteXml "yarn-site.xml" cfg.yarnSite}/* $out/
+  cp ${siteXml "httpfs-site.xml" cfg.httpfsSite}/* $out/
   cp ${cfgFile "container-executor.cfg" cfg.containerExecutorCfg}/* $out/
   cp ${pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions}/* $out/
   cp ${pkgs.writeTextDir "hadoop-env.sh" hadoopEnv}/* $out/
diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix
index da3e47b95d4..90f22c48e05 100644
--- a/nixos/modules/services/cluster/hadoop/default.nix
+++ b/nixos/modules/services/cluster/hadoop/default.nix
@@ -15,7 +15,10 @@ with lib;
           "fs.defaultFS" = "hdfs://localhost";
         }
       '';
-      description = "Hadoop core-site.xml definition";
+      description = ''
+        Hadoop core-site.xml definition
+        <link xlink:href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/core-default.xml"/>
+      '';
     };
 
     hdfsSite = mkOption {
@@ -28,7 +31,10 @@ with lib;
           "dfs.nameservices" = "namenode1";
         }
       '';
-      description = "Hadoop hdfs-site.xml definition";
+      description = ''
+        Hadoop hdfs-site.xml definition
+        <link xlink:href="https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml"/>
+      '';
     };
 
     mapredSite = mkOption {
@@ -44,7 +50,10 @@ with lib;
           "mapreduce.map.java.opts" = "-Xmx900m -XX:+UseParallelGC";
         }
       '';
-      description = "Hadoop mapred-site.xml definition";
+      description = ''
+        Hadoop mapred-site.xml definition
+        <link xlink:href="https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml"/>
+      '';
     };
 
     yarnSite = mkOption {
@@ -67,7 +76,24 @@ with lib;
           "yarn.resourcemanager.hostname" = "''${config.networking.hostName}";
         }
       '';
-      description = "Hadoop yarn-site.xml definition";
+      description = ''
+        Hadoop yarn-site.xml definition
+        <link xlink:href="https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-common/yarn-default.xml"/>
+      '';
+    };
+
+    httpfsSite = mkOption {
+      default = { };
+      type = types.attrsOf types.anything;
+      example = literalExpression ''
+        {
+          "hadoop.http.max.threads" = 500;
+        }
+      '';
+      description = ''
+        Hadoop httpfs-site.xml definition
+        <link xlink:href="https://hadoop.apache.org/docs/current/hadoop-hdfs-httpfs/httpfs-default.html"/>
+      '';
     };
 
     log4jProperties = mkOption {
@@ -92,7 +118,10 @@ with lib;
           "feature.terminal.enabled" = 0;
         }
       '';
-      description = "Yarn container-executor.cfg definition";
+      description = ''
+        Yarn container-executor.cfg definition
+        <link xlink:href="https://hadoop.apache.org/docs/r2.7.2/hadoop-yarn/hadoop-yarn-site/SecureContainer.html"/>
+      '';
     };
 
     extraConfDirs = mkOption {
@@ -118,7 +147,8 @@ with lib;
 
   config = mkMerge [
     (mkIf (builtins.hasAttr "yarn" config.users.users ||
-           builtins.hasAttr "hdfs" config.users.users) {
+           builtins.hasAttr "hdfs" config.users.users ||
+           builtins.hasAttr "httpfs" config.users.users) {
       users.groups.hadoop = {
         gid = config.ids.gids.hadoop;
       };
diff --git a/nixos/modules/services/cluster/hadoop/hdfs.nix b/nixos/modules/services/cluster/hadoop/hdfs.nix
index e347b682b90..be667aa82d8 100644
--- a/nixos/modules/services/cluster/hadoop/hdfs.nix
+++ b/nixos/modules/services/cluster/hadoop/hdfs.nix
@@ -17,11 +17,14 @@ in
 {
   options.services.hadoop.hdfs = {
     namenode = {
-      enabled = mkOption {
+      enable = mkEnableOption "Whether to run the HDFS NameNode";
+      formatOnInit = mkOption {
         type = types.bool;
         default = false;
         description = ''
-          Whether to run the HDFS NameNode
+          Format HDFS namenode on first start. This is useful for quickly spinning up ephemeral HDFS clusters with a single namenode.
+          For HA clusters, initialization involves multiple steps across multiple nodes. Follow [this guide](https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html)
+          to initialize an HA cluster manually.
         '';
       };
       inherit restartIfChanged;
@@ -34,34 +37,61 @@ in
       };
     };
     datanode = {
-      enabled = mkOption {
+      enable = mkEnableOption "Whether to run the HDFS DataNode";
+      inherit restartIfChanged;
+      openFirewall = mkOption {
         type = types.bool;
-        default = false;
+        default = true;
         description = ''
-          Whether to run the HDFS DataNode
+          Open firewall ports for datanode
         '';
       };
+    };
+    journalnode = {
+      enable = mkEnableOption "Whether to run the HDFS JournalNode";
       inherit restartIfChanged;
       openFirewall = mkOption {
         type = types.bool;
         default = true;
         description = ''
-          Open firewall ports for datanode
+          Open firewall ports for journalnode
+        '';
+      };
+    };
+    zkfc = {
+      enable = mkEnableOption "Whether to run the HDFS ZooKeeper failover controller";
+      inherit restartIfChanged;
+    };
+    httpfs = {
+      enable = mkEnableOption "Whether to run the HDFS HTTPfs server";
+      tempPath = mkOption {
+        type = types.path;
+        default = "/tmp/hadoop/httpfs";
+        description = ''
+          HTTPFS_TEMP path used by HTTPFS
+        '';
+      };
+      inherit restartIfChanged;
+      openFirewall = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Open firewall ports for HTTPFS
         '';
       };
     };
   };
 
   config = mkMerge [
-    (mkIf cfg.hdfs.namenode.enabled {
+    (mkIf cfg.hdfs.namenode.enable {
       systemd.services.hdfs-namenode = {
         description = "Hadoop HDFS NameNode";
         wantedBy = [ "multi-user.target" ];
         inherit (cfg.hdfs.namenode) restartIfChanged;
 
-        preStart = ''
+        preStart = (mkIf cfg.hdfs.namenode.formatOnInit ''
           ${cfg.package}/bin/hdfs --config ${hadoopConf} namenode -format -nonInteractive || true
-        '';
+        '');
 
         serviceConfig = {
           User = "hdfs";
@@ -74,9 +104,10 @@ in
       networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.namenode.openFirewall [
         9870 # namenode.http-address
         8020 # namenode.rpc-address
+        8022 # namenode. servicerpc-address
       ]);
     })
-    (mkIf cfg.hdfs.datanode.enabled {
+    (mkIf cfg.hdfs.datanode.enable {
       systemd.services.hdfs-datanode = {
         description = "Hadoop HDFS DataNode";
         wantedBy = [ "multi-user.target" ];
@@ -96,8 +127,64 @@ in
         9867 # datanode.ipc.address
       ]);
     })
+    (mkIf cfg.hdfs.journalnode.enable {
+      systemd.services.hdfs-journalnode = {
+        description = "Hadoop HDFS JournalNode";
+        wantedBy = [ "multi-user.target" ];
+        inherit (cfg.hdfs.journalnode) restartIfChanged;
+
+        serviceConfig = {
+          User = "hdfs";
+          SyslogIdentifier = "hdfs-journalnode";
+          ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} journalnode";
+          Restart = "always";
+        };
+      };
+
+      networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.journalnode.openFirewall [
+        8480 # dfs.journalnode.http-address
+        8485 # dfs.journalnode.rpc-address
+      ]);
+    })
+    (mkIf cfg.hdfs.zkfc.enable {
+      systemd.services.hdfs-zkfc = {
+        description = "Hadoop HDFS ZooKeeper failover controller";
+        wantedBy = [ "multi-user.target" ];
+        inherit (cfg.hdfs.zkfc) restartIfChanged;
+
+        serviceConfig = {
+          User = "hdfs";
+          SyslogIdentifier = "hdfs-zkfc";
+          ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} zkfc";
+          Restart = "always";
+        };
+      };
+    })
+    (mkIf cfg.hdfs.httpfs.enable {
+      systemd.services.hdfs-httpfs = {
+        description = "Hadoop httpfs";
+        wantedBy = [ "multi-user.target" ];
+        inherit (cfg.hdfs.httpfs) restartIfChanged;
+
+        environment.HTTPFS_TEMP = cfg.hdfs.httpfs.tempPath;
+
+        preStart = ''
+          mkdir -p $HTTPFS_TEMP
+        '';
+
+        serviceConfig = {
+          User = "httpfs";
+          SyslogIdentifier = "hdfs-httpfs";
+          ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} httpfs";
+          Restart = "always";
+        };
+      };
+      networking.firewall.allowedTCPPorts = (mkIf cfg.hdfs.httpfs.openFirewall [
+        14000 # httpfs.http.port
+      ]);
+    })
     (mkIf (
-        cfg.hdfs.namenode.enabled || cfg.hdfs.datanode.enabled
+        cfg.hdfs.namenode.enable || cfg.hdfs.datanode.enable || cfg.hdfs.journalnode.enable || cfg.hdfs.zkfc.enable
     ) {
       users.users.hdfs = {
         description = "Hadoop HDFS user";
@@ -105,6 +192,12 @@ in
         uid = config.ids.uids.hdfs;
       };
     })
-
+    (mkIf cfg.hdfs.httpfs.enable {
+      users.users.httpfs = {
+        description = "Hadoop HTTPFS user";
+        group = "hadoop";
+        isSystemUser = true;
+      };
+    })
   ];
 }
diff --git a/nixos/modules/services/cluster/hadoop/yarn.nix b/nixos/modules/services/cluster/hadoop/yarn.nix
index 0086a53e3b7..37c26ea10f7 100644
--- a/nixos/modules/services/cluster/hadoop/yarn.nix
+++ b/nixos/modules/services/cluster/hadoop/yarn.nix
@@ -17,13 +17,7 @@ in
 {
   options.services.hadoop.yarn = {
     resourcemanager = {
-      enabled = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to run the Hadoop YARN ResourceManager
-        '';
-      };
+      enable = mkEnableOption "Whether to run the Hadoop YARN ResourceManager";
       inherit restartIfChanged;
       openFirewall = mkOption {
         type = types.bool;
@@ -34,13 +28,7 @@ in
       };
     };
     nodemanager = {
-      enabled = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether to run the Hadoop YARN NodeManager
-        '';
-      };
+      enable = mkEnableOption "Whether to run the Hadoop YARN NodeManager";
       inherit restartIfChanged;
       addBinBash = mkOption {
         type = types.bool;
@@ -62,7 +50,7 @@ in
 
   config = mkMerge [
     (mkIf (
-        cfg.yarn.resourcemanager.enabled || cfg.yarn.nodemanager.enabled
+        cfg.yarn.resourcemanager.enable || cfg.yarn.nodemanager.enable
     ) {
 
       users.users.yarn = {
@@ -72,7 +60,7 @@ in
       };
     })
 
-    (mkIf cfg.yarn.resourcemanager.enabled {
+    (mkIf cfg.yarn.resourcemanager.enable {
       systemd.services.yarn-resourcemanager = {
         description = "Hadoop YARN ResourceManager";
         wantedBy = [ "multi-user.target" ];
@@ -91,10 +79,11 @@ in
         8030 # resourcemanager.scheduler.address
         8031 # resourcemanager.resource-tracker.address
         8032 # resourcemanager.address
+        8033 # resourcemanager.admin.address
       ]);
     })
 
-    (mkIf cfg.yarn.nodemanager.enabled {
+    (mkIf cfg.yarn.nodemanager.enable {
       # Needed because yarn hardcodes /bin/bash in container start scripts
       # These scripts can't be patched, they are generated at runtime
       systemd.tmpfiles.rules = [
diff --git a/nixos/modules/services/networking/unifi.nix b/nixos/modules/services/networking/unifi.nix
index caf89c84397..53ad4df477f 100644
--- a/nixos/modules/services/networking/unifi.nix
+++ b/nixos/modules/services/networking/unifi.nix
@@ -9,25 +9,6 @@ let
         ${optionalString (cfg.maximumJavaHeapSize != null) "-Xmx${(toString cfg.maximumJavaHeapSize)}m"} \
         -jar ${stateDir}/lib/ace.jar
   '';
-  mountPoints = [
-    {
-      what = "${cfg.unifiPackage}/dl";
-      where = "${stateDir}/dl";
-    }
-    {
-      what = "${cfg.unifiPackage}/lib";
-      where = "${stateDir}/lib";
-    }
-    {
-      what = "${cfg.mongodbPackage}/bin";
-      where = "${stateDir}/bin";
-    }
-    {
-      what = "${cfg.dataDir}";
-      where = "${stateDir}/data";
-    }
-  ];
-  systemdMountPoints = map (m: "${utils.escapeSystemdPath m.where}.mount") mountPoints;
 in
 {
 
@@ -68,16 +49,6 @@ in
       '';
     };
 
-    services.unifi.dataDir = mkOption {
-      type = types.str;
-      default = "${stateDir}/data";
-      description = ''
-        Where to store the database and other data.
-
-        This directory will be bind-mounted to ${stateDir}/data as part of the service startup.
-      '';
-    };
-
     services.unifi.openPorts = mkOption {
       type = types.bool;
       default = true;
@@ -136,32 +107,11 @@ in
       ];
     };
 
-    # We must create the binary directories as bind mounts instead of symlinks
-    # This is because the controller resolves all symlinks to absolute paths
-    # to be used as the working directory.
-    systemd.mounts = map ({ what, where }: {
-        bindsTo = [ "unifi.service" ];
-        partOf = [ "unifi.service" ];
-        unitConfig.RequiresMountsFor = stateDir;
-        options = "bind";
-        what = what;
-        where = where;
-      }) mountPoints;
-
-    systemd.tmpfiles.rules = [
-      "d '${stateDir}' 0700 unifi - - -"
-      "d '${stateDir}/data' 0700 unifi - - -"
-      "d '${stateDir}/webapps' 0700 unifi - - -"
-      "L+ '${stateDir}/webapps/ROOT' - - - - ${cfg.unifiPackage}/webapps/ROOT"
-    ];
-
     systemd.services.unifi = {
       description = "UniFi controller daemon";
       wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ] ++ systemdMountPoints;
-      partOf = systemdMountPoints;
-      bindsTo = systemdMountPoints;
-      unitConfig.RequiresMountsFor = stateDir;
+      after = [ "network.target" ];
+
       # This a HACK to fix missing dependencies of dynamic libs extracted from jars
       environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc.lib}/lib";
       # Make sure package upgrades trigger a service restart
@@ -209,8 +159,27 @@ in
         SystemCallErrorNumber = "EPERM";
         SystemCallFilter = [ "@system-service" ];
 
-        # Required for ProtectSystem=strict
-        BindPaths = [ stateDir ];
+        StateDirectory = "unifi";
+        RuntimeDirectory = "unifi";
+        LogsDirectory = "unifi";
+        CacheDirectory= "unifi";
+
+        TemporaryFileSystem = [
+          # required as we want to create bind mounts below
+          "${stateDir}/webapps:rw"
+        ];
+
+        # We must create the binary directories as bind mounts instead of symlinks
+        # This is because the controller resolves all symlinks to absolute paths
+        # to be used as the working directory.
+        BindPaths =  [
+          "/var/log/unifi:${stateDir}/logs"
+          "/run/unifi:${stateDir}/run"
+          "${cfg.unifiPackage}/dl:${stateDir}/dl"
+          "${cfg.unifiPackage}/lib:${stateDir}/lib"
+          "${cfg.mongodbPackage}/bin:${stateDir}/bin"
+          "${cfg.unifiPackage}/webapps/ROOT:${stateDir}/webapps/ROOT"
+        ];
 
         # Needs network access
         PrivateNetwork = false;
@@ -220,6 +189,9 @@ in
     };
 
   };
+  imports = [
+    (mkRemovedOptionModule [ "services" "unifi" "dataDir" ] "You should move contents of dataDir to /var/lib/unifi/data" )
+  ];
 
   meta.maintainers = with lib.maintainers; [ erictapen pennae ];
 }
diff --git a/nixos/modules/virtualisation/vmware-guest.nix b/nixos/modules/virtualisation/vmware-guest.nix
index 7b25ffc440f..480a9703cef 100644
--- a/nixos/modules/virtualisation/vmware-guest.nix
+++ b/nixos/modules/virtualisation/vmware-guest.nix
@@ -38,7 +38,7 @@ in
       };
 
     # Mount the vmblock for drag-and-drop and copy-and-paste.
-    systemd.mounts = [
+    systemd.mounts = mkIf (!cfg.headless) [
       {
         description = "VMware vmblock fuse mount";
         documentation = [ "https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/vmblock-fuse/design.txt" ];
@@ -52,8 +52,8 @@ in
       }
     ];
 
-    security.wrappers.vmware-user-suid-wrapper =
-      { setuid = true;
+    security.wrappers.vmware-user-suid-wrapper = mkIf (!cfg.headless) {
+        setuid = true;
         owner = "root";
         group = "root";
         source = "${open-vm-tools}/bin/vmware-user-suid-wrapper";
diff --git a/nixos/tests/deluge.nix b/nixos/tests/deluge.nix
index f673ec2db5a..33c57ce7c36 100644
--- a/nixos/tests/deluge.nix
+++ b/nixos/tests/deluge.nix
@@ -5,7 +5,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
   };
 
   nodes = {
-    simple2 = {
+    simple = {
       services.deluge = {
         enable = true;
         package = pkgs.deluge-2_x;
@@ -16,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
       };
     };
 
-    declarative2 = {
+    declarative = {
       services.deluge = {
         enable = true;
         package = pkgs.deluge-2_x;
@@ -45,27 +45,16 @@ import ./make-test-python.nix ({ pkgs, ...} : {
   testScript = ''
     start_all()
 
-    simple1.wait_for_unit("deluged")
-    simple2.wait_for_unit("deluged")
-    simple1.wait_for_unit("delugeweb")
-    simple2.wait_for_unit("delugeweb")
-    simple1.wait_for_open_port("8112")
-    simple2.wait_for_open_port("8112")
-    declarative1.wait_for_unit("network.target")
-    declarative2.wait_for_unit("network.target")
-    declarative1.wait_until_succeeds("curl --fail http://simple1:8112")
-    declarative2.wait_until_succeeds("curl --fail http://simple2:8112")
+    simple.wait_for_unit("deluged")
+    simple.wait_for_unit("delugeweb")
+    simple.wait_for_open_port("8112")
+    declarative.wait_for_unit("network.target")
+    declarative.wait_until_succeeds("curl --fail http://simple:8112")
 
-    declarative1.wait_for_unit("deluged")
-    declarative2.wait_for_unit("deluged")
-    declarative1.wait_for_unit("delugeweb")
-    declarative2.wait_for_unit("delugeweb")
-    declarative1.wait_until_succeeds("curl --fail http://declarative1:3142")
-    declarative2.wait_until_succeeds("curl --fail http://declarative2:3142")
-    declarative1.succeed(
-        "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'"
-    )
-    declarative2.succeed(
+    declarative.wait_for_unit("deluged")
+    declarative.wait_for_unit("delugeweb")
+    declarative.wait_until_succeeds("curl --fail http://declarative:3142")
+    declarative.succeed(
         "deluge-console 'connect 127.0.0.1:58846 andrew password; help' | grep -q 'rm.*Remove a torrent'"
     )
   '';
diff --git a/nixos/tests/hadoop/hadoop.nix b/nixos/tests/hadoop/hadoop.nix
index 46dfac26e06..b4ed0e17a85 100644
--- a/nixos/tests/hadoop/hadoop.nix
+++ b/nixos/tests/hadoop/hadoop.nix
@@ -1,70 +1,230 @@
+# This test is very comprehensive. It tests whether all hadoop services work well with each other.
+# Run this when updating the Hadoop package or making significant changes to the hadoop module.
+# For a more basic test, see hdfs.nix and yarn.nix
 import ../make-test-python.nix ({pkgs, ...}: {
 
   nodes = let
     package = pkgs.hadoop;
     coreSite = {
-      "fs.defaultFS" = "hdfs://master";
+      "fs.defaultFS" = "hdfs://ns1";
+    };
+    hdfsSite = {
+      "dfs.namenode.rpc-bind-host" = "0.0.0.0";
+      "dfs.namenode.http-bind-host" = "0.0.0.0";
+      "dfs.namenode.servicerpc-bind-host" = "0.0.0.0";
+
+      # HA Quorum Journal Manager configuration
+      "dfs.nameservices" = "ns1";
+      "dfs.ha.namenodes.ns1" = "nn1,nn2";
+      "dfs.namenode.shared.edits.dir.ns1.nn1" = "qjournal://jn1:8485;jn2:8485;jn3:8485/ns1";
+      "dfs.namenode.shared.edits.dir.ns1.nn2" = "qjournal://jn1:8485;jn2:8485;jn3:8485/ns1";
+      "dfs.namenode.rpc-address.ns1.nn1" = "nn1:8020";
+      "dfs.namenode.rpc-address.ns1.nn2" = "nn2:8020";
+      "dfs.namenode.servicerpc-address.ns1.nn1" = "nn1:8022";
+      "dfs.namenode.servicerpc-address.ns1.nn2" = "nn2:8022";
+      "dfs.namenode.http-address.ns1.nn1" = "nn1:9870";
+      "dfs.namenode.http-address.ns1.nn2" = "nn2:9870";
+
+      # Automatic failover configuration
+      "dfs.client.failover.proxy.provider.ns1" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider";
+      "dfs.ha.automatic-failover.enabled.ns1" = "true";
+      "dfs.ha.fencing.methods" = "shell(true)";
+      "ha.zookeeper.quorum" = "zk1:2181";
+    };
+    yarnSiteHA = {
+      "yarn.resourcemanager.zk-address" = "zk1:2181";
+      "yarn.resourcemanager.ha.enabled" = "true";
+      "yarn.resourcemanager.ha.rm-ids" = "rm1,rm2";
+      "yarn.resourcemanager.hostname.rm1" = "rm1";
+      "yarn.resourcemanager.hostname.rm2" = "rm2";
+      "yarn.resourcemanager.ha.automatic-failover.enabled" = "true";
+      "yarn.resourcemanager.cluster-id" = "cluster1";
+      # yarn.resourcemanager.webapp.address needs to be defined even though yarn.resourcemanager.hostname is set. This shouldn't be necessary, but there's a bug in
+      # hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-web-proxy/src/main/java/org/apache/hadoop/yarn/server/webproxy/amfilter/AmFilterInitializer.java:70
+      # that causes AM containers to fail otherwise.
+      "yarn.resourcemanager.webapp.address.rm1" = "rm1:8088";
+      "yarn.resourcemanager.webapp.address.rm2" = "rm2:8088";
     };
   in {
-    master = {pkgs, options, ...}: {
+    zk1 = { ... }: {
+      services.zookeeper.enable = true;
+      networking.firewall.allowedTCPPorts = [ 2181 ];
+    };
+
+    # HDFS cluster
+    nn1 = {pkgs, options, ...}: {
       services.hadoop = {
-        inherit package coreSite;
-        hdfs.namenode.enabled = true;
-        yarn.resourcemanager.enabled = true;
+        inherit package coreSite hdfsSite;
+        hdfs.namenode.enable = true;
+        hdfs.zkfc.enable = true;
+      };
+    };
+    nn2 = {pkgs, options, ...}: {
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        hdfs.namenode.enable = true;
+        hdfs.zkfc.enable = true;
+      };
+    };
+
+    jn1 = {pkgs, options, ...}: {
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        hdfs.journalnode.enable = true;
+      };
+    };
+    jn2 = {pkgs, options, ...}: {
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        hdfs.journalnode.enable = true;
+      };
+    };
+    jn3 = {pkgs, options, ...}: {
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        hdfs.journalnode.enable = true;
       };
-      virtualisation.memorySize = 1024;
     };
 
-    worker = {pkgs, options, ...}: {
+    dn1 = {pkgs, options, ...}: {
       services.hadoop = {
-        inherit package coreSite;
-        hdfs.datanode.enabled = true;
-        yarn.nodemanager.enabled = true;
-        yarnSite = options.services.hadoop.yarnSite.default // {
-          "yarn.resourcemanager.hostname" = "master";
-        };
+        inherit package coreSite hdfsSite;
+        hdfs.datanode.enable = true;
       };
+    };
+
+    # YARN cluster
+    rm1 = {pkgs, options, ...}: {
+      virtualisation.memorySize = 1024;
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+        yarn.resourcemanager.enable = true;
+      };
+    };
+    rm2 = {pkgs, options, ...}: {
+      virtualisation.memorySize = 1024;
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+        yarn.resourcemanager.enable = true;
+      };
+    };
+    nm1 = {pkgs, options, ...}: {
       virtualisation.memorySize = 2048;
+      services.hadoop = {
+        inherit package coreSite hdfsSite;
+        yarnSite = options.services.hadoop.yarnSite.default // yarnSiteHA;
+        yarn.nodemanager.enable = true;
+      };
     };
   };
 
   testScript = ''
     start_all()
 
-    master.wait_for_unit("network.target")
-    master.wait_for_unit("hdfs-namenode")
+    #### HDFS tests ####
+
+    zk1.wait_for_unit("network.target")
+    jn1.wait_for_unit("network.target")
+    jn2.wait_for_unit("network.target")
+    jn3.wait_for_unit("network.target")
+    nn1.wait_for_unit("network.target")
+    nn2.wait_for_unit("network.target")
+    dn1.wait_for_unit("network.target")
+
+    zk1.wait_for_unit("zookeeper")
+    jn1.wait_for_unit("hdfs-journalnode")
+    jn2.wait_for_unit("hdfs-journalnode")
+    jn3.wait_for_unit("hdfs-journalnode")
+
+    zk1.wait_for_open_port(2181)
+    jn1.wait_for_open_port(8480)
+    jn1.wait_for_open_port(8485)
+    jn2.wait_for_open_port(8480)
+    jn2.wait_for_open_port(8485)
+
+    # Namenodes must be stopped before initializing the cluster
+    nn1.succeed("systemctl stop hdfs-namenode")
+    nn2.succeed("systemctl stop hdfs-namenode")
+    nn1.succeed("systemctl stop hdfs-zkfc")
+    nn2.succeed("systemctl stop hdfs-zkfc")
+
+    # Initialize zookeeper for failover controller
+    nn1.succeed("sudo -u hdfs hdfs zkfc -formatZK 2>&1 | systemd-cat")
+
+    # Format NN1 and start it
+    nn1.succeed("sudo -u hdfs hadoop namenode -format 2>&1 | systemd-cat")
+    nn1.succeed("systemctl start hdfs-namenode")
+    nn1.wait_for_open_port(9870)
+    nn1.wait_for_open_port(8022)
+    nn1.wait_for_open_port(8020)
+
+    # Bootstrap NN2 from NN1 and start it
+    nn2.succeed("sudo -u hdfs hdfs namenode -bootstrapStandby 2>&1 | systemd-cat")
+    nn2.succeed("systemctl start hdfs-namenode")
+    nn2.wait_for_open_port(9870)
+    nn2.wait_for_open_port(8022)
+    nn2.wait_for_open_port(8020)
+    nn1.succeed("netstat -tulpne | systemd-cat")
+
+    # Start failover controllers
+    nn1.succeed("systemctl start hdfs-zkfc")
+    nn2.succeed("systemctl start hdfs-zkfc")
 
-    master.wait_for_open_port(8020)
-    master.wait_for_open_port(9870)
+    # DN should have started by now, but confirm anyway
+    dn1.wait_for_unit("hdfs-datanode")
+    # Print states of namenodes
+    dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+    # Wait for cluster to exit safemode
+    dn1.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+    dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+    # test R/W
+    dn1.succeed("echo testfilecontents | sudo -u hdfs hdfs dfs -put - /testfile")
+    assert "testfilecontents" in dn1.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
 
-    worker.wait_for_unit("network.target")
-    worker.wait_for_unit("hdfs-datanode")
-    worker.wait_for_open_port(9864)
-    worker.wait_for_open_port(9866)
-    worker.wait_for_open_port(9867)
+    # Test NN failover
+    nn1.succeed("systemctl stop hdfs-namenode")
+    assert "active" in dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState")
+    dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
+    assert "testfilecontents" in dn1.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
 
-    master.succeed("curl -f http://worker:9864")
-    worker.succeed("curl -f http://master:9870")
+    nn1.succeed("systemctl start hdfs-namenode")
+    nn1.wait_for_open_port(9870)
+    nn1.wait_for_open_port(8022)
+    nn1.wait_for_open_port(8020)
+    assert "standby" in dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState")
+    dn1.succeed("sudo -u hdfs hdfs haadmin -getAllServiceState | systemd-cat")
 
-    worker.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+    #### YARN tests ####
 
-    master.wait_for_unit("yarn-resourcemanager")
+    rm1.wait_for_unit("network.target")
+    rm2.wait_for_unit("network.target")
+    nm1.wait_for_unit("network.target")
 
-    master.wait_for_open_port(8030)
-    master.wait_for_open_port(8031)
-    master.wait_for_open_port(8032)
-    master.wait_for_open_port(8088)
-    worker.succeed("curl -f http://master:8088")
+    rm1.wait_for_unit("yarn-resourcemanager")
+    rm1.wait_for_open_port(8088)
+    rm2.wait_for_unit("yarn-resourcemanager")
+    rm2.wait_for_open_port(8088)
 
-    worker.wait_for_unit("yarn-nodemanager")
-    worker.wait_for_open_port(8042)
-    worker.wait_for_open_port(8040)
-    master.succeed("curl -f http://worker:8042")
+    nm1.wait_for_unit("yarn-nodemanager")
+    nm1.wait_for_open_port(8042)
+    nm1.wait_for_open_port(8040)
+    nm1.wait_until_succeeds("yarn node -list | grep Nodes:1")
+    nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
+    nm1.succeed("sudo -u yarn yarn node -list | systemd-cat")
 
-    assert "Total Nodes:1" in worker.succeed("yarn node -list")
+    # Test RM failover
+    rm1.succeed("systemctl stop yarn-resourcemanager")
+    assert "standby" not in nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState")
+    nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
+    rm1.succeed("systemctl start yarn-resourcemanager")
+    rm1.wait_for_unit("yarn-resourcemanager")
+    rm1.wait_for_open_port(8088)
+    assert "standby" in nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState")
+    nm1.succeed("sudo -u yarn yarn rmadmin -getAllServiceState | systemd-cat")
 
-    assert "Estimated value of Pi is" in worker.succeed("HADOOP_USER_NAME=hdfs yarn jar $(readlink $(which yarn) | sed -r 's~bin/yarn~lib/hadoop-*/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar~g') pi 2 10")
-    assert "SUCCEEDED" in worker.succeed("yarn application -list -appStates FINISHED")
-    worker.succeed("sudo -u hdfs hdfs dfs -ls / | systemd-cat")
+    assert "Estimated value of Pi is" in nm1.succeed("HADOOP_USER_NAME=hdfs yarn jar $(readlink $(which yarn) | sed -r 's~bin/yarn~lib/hadoop-*/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar~g') pi 2 10")
+    assert "SUCCEEDED" in nm1.succeed("yarn application -list -appStates FINISHED")
   '';
- })
+})
diff --git a/nixos/tests/hadoop/hdfs.nix b/nixos/tests/hadoop/hdfs.nix
index f5907185c03..360dbd60ed2 100644
--- a/nixos/tests/hadoop/hdfs.nix
+++ b/nixos/tests/hadoop/hdfs.nix
@@ -1,36 +1,34 @@
+# Test a minimal HDFS cluster with no HA
 import ../make-test-python.nix ({...}: {
   nodes = {
     namenode = {pkgs, ...}: {
+      virtualisation.memorySize = 1024;
       services.hadoop = {
         package = pkgs.hadoop;
-        hdfs.namenode.enabled = true;
+        hdfs = {
+          namenode = {
+            enable = true;
+            formatOnInit = true;
+          };
+          httpfs.enable = true;
+        };
         coreSite = {
           "fs.defaultFS" = "hdfs://namenode:8020";
-        };
-        hdfsSite = {
-          "dfs.replication" = 1;
-          "dfs.namenode.rpc-bind-host" = "0.0.0.0";
-          "dfs.namenode.http-bind-host" = "0.0.0.0";
+          "hadoop.proxyuser.httpfs.groups" = "*";
+          "hadoop.proxyuser.httpfs.hosts" = "*";
         };
       };
-      networking.firewall.allowedTCPPorts = [
-        9870 # namenode.http-address
-        8020 # namenode.rpc-address
-      ];
     };
     datanode = {pkgs, ...}: {
       services.hadoop = {
         package = pkgs.hadoop;
-        hdfs.datanode.enabled = true;
+        hdfs.datanode.enable = true;
         coreSite = {
           "fs.defaultFS" = "hdfs://namenode:8020";
+          "hadoop.proxyuser.httpfs.groups" = "*";
+          "hadoop.proxyuser.httpfs.hosts" = "*";
         };
       };
-      networking.firewall.allowedTCPPorts = [
-        9864 # datanode.http.address
-        9866 # datanode.address
-        9867 # datanode.ipc.address
-      ];
     };
   };
 
@@ -50,5 +48,13 @@ import ../make-test-python.nix ({...}: {
 
     namenode.succeed("curl -f http://namenode:9870")
     datanode.succeed("curl -f http://datanode:9864")
+
+    datanode.succeed("sudo -u hdfs hdfs dfsadmin -safemode wait")
+    datanode.succeed("echo testfilecontents | sudo -u hdfs hdfs dfs -put - /testfile")
+    assert "testfilecontents" in datanode.succeed("sudo -u hdfs hdfs dfs -cat /testfile")
+
+    namenode.wait_for_unit("hdfs-httpfs")
+    namenode.wait_for_open_port(14000)
+    assert "testfilecontents" in datanode.succeed("curl -f \"http://namenode:14000/webhdfs/v1/testfile?user.name=hdfs&op=OPEN\" 2>&1")
   '';
 })
diff --git a/nixos/tests/hadoop/yarn.nix b/nixos/tests/hadoop/yarn.nix
index fbbb293eecd..09bdb35791c 100644
--- a/nixos/tests/hadoop/yarn.nix
+++ b/nixos/tests/hadoop/yarn.nix
@@ -1,28 +1,20 @@
+# This only tests if YARN is able to start its services
 import ../make-test-python.nix ({...}: {
   nodes = {
     resourcemanager = {pkgs, ...}: {
       services.hadoop.package = pkgs.hadoop;
-      services.hadoop.yarn.resourcemanager.enabled = true;
+      services.hadoop.yarn.resourcemanager.enable = true;
       services.hadoop.yarnSite = {
         "yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler";
       };
-      networking.firewall.allowedTCPPorts = [
-        8088 # resourcemanager.webapp.address
-        8031 # resourcemanager.resource-tracker.address
-      ];
     };
     nodemanager = {pkgs, ...}: {
       services.hadoop.package = pkgs.hadoop;
-      services.hadoop.yarn.nodemanager.enabled = true;
+      services.hadoop.yarn.nodemanager.enable = true;
       services.hadoop.yarnSite = {
         "yarn.resourcemanager.hostname" = "resourcemanager";
         "yarn.nodemanager.log-dirs" = "/tmp/userlogs";
-        "yarn.nodemanager.address" = "0.0.0.0:8041";
       };
-      networking.firewall.allowedTCPPorts = [
-        8042 # nodemanager.webapp.address
-        8041 # nodemanager.address
-      ];
     };
 
   };
@@ -38,7 +30,6 @@ import ../make-test-python.nix ({...}: {
     nodemanager.wait_for_unit("yarn-nodemanager")
     nodemanager.wait_for_unit("network.target")
     nodemanager.wait_for_open_port(8042)
-    nodemanager.wait_for_open_port(8041)
 
     resourcemanager.succeed("curl -f http://localhost:8088")
     nodemanager.succeed("curl -f http://localhost:8042")
diff --git a/pkgs/data/icons/kora-icon-theme/default.nix b/pkgs/data/icons/kora-icon-theme/default.nix
index 5c8f3d15b66..89fd80c468e 100644
--- a/pkgs/data/icons/kora-icon-theme/default.nix
+++ b/pkgs/data/icons/kora-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec  {
   pname = "kora-icon-theme";
-  version = "1.4.5";
+  version = "1.4.7";
 
   src = fetchFromGitHub  {
     owner = "bikass";
     repo = "kora";
     rev = "v${version}";
-    sha256 = "sha256-5tXXAfGY5JQ5RiKayUuQJDgX6sPHRi8Hy2ht/Hl0hdo=";
+    sha256 = "sha256-Ol4DrQJmQT/LIU5qWJJEm6od7e29h7g913YTFQjudBQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index fb0b6cd6156..d5bcd2d60bf 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "b60d5f4b773d16857c105718faad9699e145edcd",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/b60d5f4b773d16857c105718faad9699e145edcd.tar.gz",
-  "sha256": "19avxynbjhkhvjy5kcxgd3fp0b2nczsk213s1za488r6kksj90f5",
-  "msg": "Update from Hackage at 2021-10-18T14:27:09Z"
+  "commit": "f2537d46db49014726f8ad00dcc60f5e41213397",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/f2537d46db49014726f8ad00dcc60f5e41213397.tar.gz",
+  "sha256": "021j2xn1xk8fqs7648si42n7z6rjzp4jnags4jkfnk1f81swns6h",
+  "msg": "Update from Hackage at 2021-10-23T04:57:02Z"
 }
diff --git a/pkgs/development/compilers/ghc/9.2.1.nix b/pkgs/development/compilers/ghc/9.2.1.nix
index 703ba0a705c..90dea665e6d 100644
--- a/pkgs/development/compilers/ghc/9.2.1.nix
+++ b/pkgs/development/compilers/ghc/9.2.1.nix
@@ -142,24 +142,14 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "9.2.0.20210821";
+  version = "9.2.1";
   pname = "${targetPrefix}ghc${variantSuffix}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/9.2.1-rc1/ghc-${version}-src.tar.xz";
-    sha256 = "1q2pppxv2avhykyxvyq72r5p97rkkiqp19b77yhp85ralbcp4ivw";
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
+    sha256 = "f444012f97a136d9940f77cdff03fda48f9475e2ed0fec966c4d35c4df55f746";
   };
 
-  patches = [
-    # picked from release branch, remove with the next release candidate,
-    # see https://gitlab.haskell.org/ghc/ghc/-/issues/19950#note_373726
-    (fetchpatch {
-      name = "fix-darwin-link-failure.patch";
-      url = "https://gitlab.haskell.org/ghc/ghc/-/commit/77456387025ca74299ecc70621cbdb62b1b6ffc9.patch";
-      sha256 = "1g8smrn7hj8cbp9fhrylvmrb15s0xd8lhdgxqnx0asnd4az82gj8";
-    })
-  ];
-
   enableParallelBuilding = true;
 
   outputs = [ "out" "doc" ];
@@ -255,7 +245,7 @@ stdenv.mkDerivation (rec {
   ] ++ lib.optionals enableDocs [
     sphinx
   ] ++ lib.optionals stdenv.isDarwin [
-    # TODO(@sternenseemann): use XATTR env var after backport of
+    # TODO(@sternenseemann): backport addition of XATTR env var like
     # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6447
     xattr
   ];
diff --git a/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch b/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch
deleted file mode 100644
index 20e19d8bf86..00000000000
--- a/pkgs/development/compilers/ghcjs/patches/vector-ghcjs-storable-set.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/Data/Vector/Storable/Mutable.hs b/Data/Vector/Storable/Mutable.hs
-index 8b538bc..2b74fce 100644
---- a/Data/Vector/Storable/Mutable.hs
-+++ b/Data/Vector/Storable/Mutable.hs
-@@ -197,7 +197,9 @@ storableSet (MVector n fp) x
-                   1 -> storableSetAsPrim n fp x (undefined :: Word8)
-                   2 -> storableSetAsPrim n fp x (undefined :: Word16)
-                   4 -> storableSetAsPrim n fp x (undefined :: Word32)
-+#if !defined(ghcjs_HOST_OS)
-                   8 -> storableSetAsPrim n fp x (undefined :: Word64)
-+#endif
-                   _ -> unsafeWithForeignPtr fp $ \p -> do
-                        poke p x
- 
diff --git a/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index b216bf9000b..70d50088b0b 100644
--- a/pkgs/development/haskell-modules/cabal2nix-unstable.nix
+++ b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
@@ -8,10 +8,10 @@
 }:
 mkDerivation {
   pname = "cabal2nix";
-  version = "unstable-2021-09-28";
+  version = "unstable-2021-10-23";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/b4d893ed1a7a66b0046dd8a48f62b81de670ab02.tar.gz";
-    sha256 = "0xl5a0gfxrqz8pkx43zrj84xvcg15723lgvirxdcvc4zqa732zjg";
+    url = "https://github.com/NixOS/cabal2nix/archive/8aeef87436468a416e5908b48ec82ac3f15eb885.tar.gz";
+    sha256 = "1w6wabp0v2fii5i28nsp0ss6dsz222p94mmxrrns3q0df82s2cm1";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index f20a37fe840..b3a57a9e2ac 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -281,7 +281,9 @@ self: super: {
   lvmrun = disableHardening (dontCheck super.lvmrun) ["format"];
   matplotlib = dontCheck super.matplotlib;
   # https://github.com/matterhorn-chat/matterhorn/issues/679 they do not want to be on stackage
-  matterhorn = doJailbreak super.matterhorn; # this is needed until the end of time :')
+  matterhorn = doJailbreak (super.matterhorn.overrideScope (self: super: {
+    brick = self.brick_0_64_2;
+  }));
   memcache = dontCheck super.memcache;
   metrics = dontCheck super.metrics;
   milena = dontCheck super.milena;
@@ -631,20 +633,7 @@ self: super: {
   #   removed when the next idris release (1.3.4 probably) comes
   #   around.
   idris = generateOptparseApplicativeCompletion "idris"
-    (doJailbreak (dontCheck
-      (appendPatches super.idris [
-        # compatibility with haskeline >= 0.8
-        (pkgs.fetchpatch {
-          url = "https://github.com/idris-lang/Idris-dev/commit/89a87cf666eb8b27190c779e72d0d76eadc1bc14.patch";
-          sha256 = "0fv493zlpgjsf57w0sncd4vqfkabfczp3xazjjmqw54m9rsfix35";
-        })
-        # compatibility with megaparsec >= 0.9
-        (pkgs.fetchpatch {
-          url = "https://github.com/idris-lang/Idris-dev/commit/6ea9bc913877d765048d7cdb7fc5aec60b196fac.patch";
-          sha256 = "0yms74d1xdxd1c08dnp45nb1ddzq54n6hqgzxx0r494wy614ir8q";
-        })
-      ])
-    ));
+    (doJailbreak (dontCheck super.idris));
 
   # https://github.com/pontarius/pontarius-xmpp/issues/105
   pontarius-xmpp = dontCheck super.pontarius-xmpp;
@@ -692,19 +681,17 @@ self: super: {
   # For 2.17 support: https://github.com/JonasDuregard/sized-functors/pull/10
   size-based = doJailbreak super.size-based;
 
-  # Remove as soon as we update to monoid-extras 0.6 and unpin these packages
-  dual-tree = doJailbreak super.dual-tree;
-  diagrams-core = doJailbreak super.diagrams-core;
+  # https://github.com/diagrams/diagrams-braille/issues/1
+  diagrams-braille = doJailbreak super.diagrams-braille;
 
-  # Apply patch from master to add compat with optparse-applicative >= 0.16.
-  # We unfortunately can't upgrade to 1.4.4 which includes this patch yet
-  # since it would require monoid-extras 0.6 which breaks other diagrams libs.
-  diagrams-lib = doJailbreak (appendPatch super.diagrams-lib
-    (pkgs.fetchpatch {
-      url = "https://github.com/diagrams/diagrams-lib/commit/4b9842c3e3d653be69af19778970337775e2404d.patch";
-      sha256 = "0xqvzh3ip9i0nv8xnh41afxki64r259pxq8ir1a4v99ggnldpjaa";
-      includes = [ "*/CmdLine.hs" ];
-    }));
+  # https://github.com/timbod7/haskell-chart/pull/231#issuecomment-953745932
+  Chart-diagrams = doJailbreak super.Chart-diagrams;
+
+  # https://github.com/xu-hao/namespace/issues/1
+  namespace = doJailbreak super.namespace;
+
+  # https://github.com/cchalmers/plots/issues/46
+  plots = doJailbreak super.plots;
 
   # https://github.com/diagrams/diagrams-solve/issues/4
   diagrams-solve = dontCheck super.diagrams-solve;
@@ -1132,8 +1119,10 @@ self: super: {
   });
 
   # Chart-tests needs and compiles some modules from Chart itself
-  Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
-    preCheck = old.postPatch or "" + ''
+  Chart-tests = overrideCabal (addExtraLibrary super.Chart-tests self.QuickCheck) (old: {
+    # https://github.com/timbod7/haskell-chart/issues/233
+    jailbreak = true;
+    preCheck = old.preCheck or "" + ''
       tar --one-top-level=../chart --strip-components=1 -xf ${self.Chart.src}
     '';
   });
@@ -2071,4 +2060,12 @@ EOT
   # file revision on hackage was gifted CRLF line endings
   gogol-core = appendPatch super.gogol-core ./patches/gogol-core-144.patch;
 
+  # cabal tries to install files we're supplying from the system
+  # https://github.com/hslua/hslua/pull/103
+  lua = appendPatch super.lua (pkgs.fetchpatch {
+    url = "https://github.com/hslua/hslua/pull/103/commits/814bf1bb284151e827b1c11a7277819ed2779dd2.patch";
+    sha256 = "1kj0g51lkjyf6jv2ikayb3cfh0dcr669swmxl9a2mcrizxcbkrhy";
+    stripLen = 1;
+  });
+
 } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 29c0716b093..ca2ef743096 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -43,6 +43,11 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # Workaround for https://gitlab.haskell.org/ghc/ghc/-/issues/20594
+  tf-random = overrideCabal super.tf-random {
+    doHaddock = !pkgs.stdenv.isAarch64;
+  };
+
   aeson = appendPatch (doJailbreak super.aeson) (pkgs.fetchpatch {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/aeson-1.5.6.0.patch";
     sha256 = "07rk7f0lhgilxvbg2grpl1p5x25wjf9m7a0wqmi2jr0q61p9a0nl";
@@ -239,12 +244,10 @@ self: super: {
   # https://github.com/Soostone/retry/issues/71
   retry = dontCheck super.retry;
 
-  # Disable tests pending resolution of
-  # https://github.com/haskell/text/issues/380 or https://github.com/fpco/streaming-commons/issues/60
-  streaming-commons = dontCheck (appendPatch super.streaming-commons (pkgs.fetchpatch {
+  streaming-commons = appendPatch super.streaming-commons (pkgs.fetchpatch {
     url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/streaming-commons-0.2.2.1.patch";
     sha256 = "04wi1jskr3j8ayh88kkx4irvhhgz0i7aj6fblzijy0fygikvidpy";
-  }));
+  });
 
   # hlint 3.3 needs a ghc-lib-parser newer than the one from stackage
   hlint = super.hlint_3_3_4.overrideScope (self: super: {
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index d4e443d6bea..953695e7b6c 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -101,9 +101,6 @@ self: super:
   # still present here https://github.com/glguy/th-abstraction/issues/53
   th-abstraction = dontCheck super.th-abstraction;
 
-  # https://github.com/haskell/vector/issues/410
-  vector = appendPatch super.vector (../compilers/ghcjs/patches/vector-ghcjs-storable-set.patch) ;
-
   # Need hedgehog for tests, which fails to compile due to dep on concurrent-output
   zenc = dontCheck super.zenc;
 }
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index ff2210d031e..316ae601c01 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -88,7 +88,6 @@ broken-packages:
   - aeson-tiled
   - aeson-typescript
   - aeson-utils
-  - aeson-via
   - affection
   - affine-invariant-ensemble-mcmc
   - Agata
@@ -128,6 +127,7 @@ broken-packages:
   - alure
   - amazon-emailer
   - amazonka-contrib-rds-utils
+  - amazonka-mediaconvert
   - amazonka-s3-streaming
   - amazon-products
   - amby
@@ -499,7 +499,6 @@ broken-packages:
   - bytestring-show
   - bytestring-substring
   - bytestring-time
-  - bytestring-trie
   - bytestring-typenats
   - c0parser
   - c10k
@@ -841,6 +840,7 @@ broken-packages:
   - CoreErlang
   - core-haskell
   - corenlp-parser
+  - core-telemetry
   - Coroutine
   - coroutine-object
   - CouchDB
@@ -1051,7 +1051,6 @@ broken-packages:
   - dia-base
   - diagrams-boolean
   - diagrams-builder
-  - diagrams-canvas
   - diagrams-graphviz
   - diagrams-gtk
   - diagrams-pdf
@@ -1330,6 +1329,7 @@ broken-packages:
   - expresso
   - extcore
   - extended-categories
+  - extensible
   - extensible-effects-concurrent
   - extensible-skeleton
   - external-sort
@@ -1921,6 +1921,7 @@ broken-packages:
   - hashable-orphans
   - hashabler
   - hashed-storage
+  - hashes
   - hashring
   - hashtables-plus
   - hasim
@@ -2339,6 +2340,8 @@ broken-packages:
   - hslogger-reader
   - hslogger-template
   - hs-logo
+  - hslua-examples
+  - hslua-module-version
   - hsluv-haskell
   - hsmagick
   - hsmodetweaks
@@ -2470,7 +2473,6 @@ broken-packages:
   - hw-json-simd
   - hw-mquery
   - hworker
-  - hw-prim-bits
   - hw-simd
   - hwsl2
   - hx
@@ -2845,6 +2847,7 @@ broken-packages:
   - libtagc
   - libxls
   - libxslt
+  - libyaml-streamly
   - lie
   - life-sync
   - lifted-protolude
@@ -3656,6 +3659,7 @@ broken-packages:
   - persistent-mongoDB
   - persistent-mysql-haskell
   - persistent-odbc
+  - persistent-postgresql-streaming
   - persistent-protobuf
   - persistent-ratelimit
   - persistent-redis
@@ -3757,6 +3761,7 @@ broken-packages:
   - pointful
   - pointless-haskell
   - pokemon-go-protobuf-types
+  - poker-base
   - poker-eval
   - pokitdok
   - polar-configfile
@@ -4123,6 +4128,7 @@ broken-packages:
   - resource-effect
   - resource-embed
   - restartable
+  - rest-rewrite
   - restyle
   - resumable-exceptions
   - rethinkdb
@@ -4810,7 +4816,6 @@ broken-packages:
   - tapioca
   - TaskMonad
   - tasty-auto
-  - tasty-checklist
   - tasty-fail-fast
   - tasty-grading-system
   - tasty-hedgehog-coverage
@@ -4827,6 +4832,7 @@ broken-packages:
   - tds
   - teams
   - teeth
+  - telega
   - telegram
   - telegram-api
   - telegram-bot-simple
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 4282915cee4..7f337014ff0 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -72,18 +72,6 @@ default-package-overrides:
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  # 2021-05-11: not all diagrams libraries have adjusted to
-  # monoid-extras 0.6 yet, keep them pinned to lower versions
-  # until we can do a full migration, see
-  # https://github.com/diagrams/diagrams-core/issues/115
-  # We can keep this pin at most until base 4.15
-  # Since the monoid-extras adjustment was combined with
-  # a major release in some cases, we need to wait for
-  # diagrams 1.5 to be released.
-  - monoid-extras < 0.6
-  - dual-tree < 0.2.3.0
-  - diagrams-core < 1.5.0
-  - diagrams-lib < 1.4.4
   # streamly-* packages which are not in stackage and to be constrained
   # as long as we have streamly < 0.8.0
   - streamly-archive < 0.1.0
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index b1d9b7b551a..f90e8b12c2f 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -221,9 +221,6 @@ dont-distribute-packages:
  - IORefCAS
  - IndexedList
  - InfixApplicative
- - JSON-Combinator
- - JSON-Combinator-Examples
- - JSONb
  - Javasf
  - JsContracts
  - JsonGrammar
@@ -234,7 +231,6 @@ dont-distribute-packages:
  - KiCS-debugger
  - KiCS-prophecy
  - LDAPv3
- - LambdaDesigner
  - LambdaINet
  - LambdaPrettyQuote
  - LambdaShell
@@ -408,7 +404,6 @@ dont-distribute-packages:
  - agda-snippets-hakyll
  - agentx
  - aip
- - airship
  - aivika-distributed
  - algebra-checkers
  - algebra-driven-design
@@ -1003,7 +998,6 @@ dont-distribute-packages:
  - dph-prim-interface
  - dph-prim-par
  - dph-prim-seq
- - dprox
  - dropbox-sdk
  - dropsolve
  - dsh-sql
@@ -1045,6 +1039,7 @@ dont-distribute-packages:
  - enumeration
  - enumerator-fd
  - enumerator-tf
+ - envy-extensible
  - ephemeral
  - erf-native
  - eros-client
@@ -1053,6 +1048,7 @@ dont-distribute-packages:
  - errors-ext
  - ersatz-toysat
  - esotericbot
+ - esqueleto-streaming
  - estreps
  - eternity
  - eternity-timestamped
@@ -1724,8 +1720,6 @@ dont-distribute-packages:
  - iException
  - ice40-prim
  - ide-backend
- - ide-backend-common
- - ide-backend-server
  - ideas-math
  - ideas-math-types
  - ideas-statistics
@@ -1832,7 +1826,6 @@ dont-distribute-packages:
  - json-tokens
  - json2-hdbc
  - jsons-to-schema
- - jspath
  - jvm
  - jvm-batching
  - jvm-streaming
@@ -1904,10 +1897,6 @@ dont-distribute-packages:
  - lambdacube
  - lambdacube-bullet
  - lambdacube-compiler
- - lambdacube-core
- - lambdacube-edsl
- - lambdacube-engine
- - lambdacube-examples
  - lambdacube-gl
  - lambdacube-samples
  - lambdaya-bus
@@ -2871,6 +2860,8 @@ dont-distribute-packages:
  - sql-simple-postgresql
  - sql-simple-sqlite
  - sqlite-simple-typed
+ - squeal-postgresql-ltree
+ - squeal-postgresql-uuid-ossp
  - squeeze
  - sr-extra
  - sscgi
@@ -2995,7 +2986,6 @@ dont-distribute-packages:
  - testbench
  - text-json-qq
  - text-plus
- - text-trie
  - text-xml-generic
  - textmatetags
  - th-alpha
@@ -3097,7 +3087,6 @@ dont-distribute-packages:
  - typson-esqueleto
  - typson-selda
  - u2f
- - uber
  - ucam-webauth
  - uhc-light
  - uhc-util
@@ -3205,7 +3194,6 @@ dont-distribute-packages:
  - web-routes-regular
  - web-routing
  - web3
- - webapi
  - webcrank-wai
  - webdriver-w3c
  - webserver
@@ -3284,6 +3272,7 @@ dont-distribute-packages:
  - yam-web
  - yaml-rpc-scotty
  - yaml-rpc-snap
+ - yaml-streamly
  - yaml-unscrambler
  - yarr-image-io
  - yavie
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 41aa5edcdd0..909f2847d39 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -9796,6 +9796,25 @@ self: {
        license = "LGPL";
      }) {};
 
+  "HaXml_1_25_7" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , polyparse, pretty, random
+     }:
+     mkDerivation {
+       pname = "HaXml";
+       version = "1.25.7";
+       sha256 = "111cmrviw8d4cywyka4l0ni5ldi7y6m1nl8fcyjxh54b859c3bsn";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers filepath polyparse pretty random
+       ];
+       executableHaskellDepends = [ base directory polyparse pretty ];
+       description = "Utilities for manipulating XML documents";
+       license = "LGPL";
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "Hach" = callPackage
     ({ mkDerivation, base, containers, network, old-locale, text, time
      , vty, vty-ui
@@ -11480,7 +11499,6 @@ self: {
        ];
        description = "A combinator library on top of a generalised JSON type";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "JSON-Combinator-Examples" = callPackage
@@ -11494,7 +11512,6 @@ self: {
        ];
        description = "Example uses of the JSON-Combinator library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "JSONParser" = callPackage
@@ -11526,7 +11543,6 @@ self: {
        ];
        description = "JSON parser that uses byte strings";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "JYU-Utils" = callPackage
@@ -12360,7 +12376,6 @@ self: {
        ];
        description = "A type-safe EDSL for TouchDesigner written in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "LambdaHack" = callPackage
@@ -13881,8 +13896,8 @@ self: {
     ({ mkDerivation, ansi-terminal, base, doctest, hspec, time }:
      mkDerivation {
        pname = "Monadoro";
-       version = "0.2.5.0";
-       sha256 = "0p3270xzwhq1j8m3mb4bvh95c4w16vrjj4cd0p87aq35xy99f4dr";
+       version = "0.2.6.0";
+       sha256 = "0ijiqwx8vy00l1aphbj2kjfdzycsj6hm5828liyj4qig6cr6l1zd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base time ];
@@ -16556,11 +16571,12 @@ self: {
     ({ mkDerivation, base, hspec, QuickCheck }:
      mkDerivation {
        pname = "QuickCheckVariant";
-       version = "1.0.0.1";
-       sha256 = "12yxavf2bcd6cpf09j4d97myks4v34jki5hqjl9kcwar8k8j8gls";
+       version = "1.0.1.0";
+       sha256 = "1hfx28krjmx06jlivri51jcssngyf7i8n1vjmz0n948i83hn5kga";
        libraryHaskellDepends = [ base QuickCheck ];
        testHaskellDepends = [ base hspec QuickCheck ];
-       description = "Generator of \"valid\" and \"invalid\" data in a type class";
+       benchmarkHaskellDepends = [ base hspec QuickCheck ];
+       description = "Valid and Invalid generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -20722,10 +20738,8 @@ self: {
     ({ mkDerivation, base, parsec }:
      mkDerivation {
        pname = "ValveValueKeyvalue";
-       version = "1.0.1.0";
-       sha256 = "05m75nhsz1a2zb59lkdmkv7wznljhr76k7qm2pia37dj8h5zywcy";
-       revision = "1";
-       editedCabalFile = "1d4n0kqypzrcbxaq43aiw5zaq12ncws5c50ckyzvky4cs208g0is";
+       version = "1.1.0.0";
+       sha256 = "1hcgyv5fhpqvccpplrpi192vlk8dh1ds3w455fy3yvz14g5rfvkp";
        libraryHaskellDepends = [ base parsec ];
        description = "A Valve Value-keyvalue parser for Haskell made with Parsec";
        license = lib.licenses.mit;
@@ -25578,8 +25592,6 @@ self: {
        ];
        description = "Wrappers to derive-via Aeson ToJSON/FromJSON typeclasses";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "aeson-with" = callPackage
@@ -25754,12 +25766,13 @@ self: {
 
   "agda-language-server" = callPackage
     ({ mkDerivation, aeson, Agda, base, bytestring, containers, lsp
-     , mtl, network, network-simple, process, stm, strict, text
+     , mtl, network, network-simple, process, stm, strict, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "agda-language-server";
-       version = "0.0.3.0";
-       sha256 = "1sjni83r9snscqlrszx68ld9lyvrrg02abkli23j9yd6yg8zyx8v";
+       version = "0.2.0";
+       sha256 = "15r96aaigdqj1kn66nmn4j1s9i98rc7q6r1v0zlixyiiq25awrjq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -25772,9 +25785,10 @@ self: {
        ];
        testHaskellDepends = [
          aeson Agda base bytestring containers lsp mtl network
-         network-simple process stm strict text
+         network-simple process stm strict tasty tasty-golden tasty-hunit
+         tasty-quickcheck text
        ];
-       description = "LSP server for Agda";
+       description = "An implementation of language server protocal (LSP) for Agda 2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -26072,7 +26086,6 @@ self: {
        ];
        description = "A Webmachine-inspired HTTP library";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "airtable-api" = callPackage
@@ -29056,6 +29069,8 @@ self: {
        ];
        description = "Amazon Elemental MediaConvert SDK";
        license = lib.licenses.mpl20;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "amazonka-medialive" = callPackage
@@ -32587,8 +32602,8 @@ self: {
      }:
      mkDerivation {
        pname = "arbtt";
-       version = "0.11";
-       sha256 = "1jxsmwi7nqgmhnx1hv7y1hcff4gpi3zsg3lrzkq3y8dj2pz29whw";
+       version = "0.11.1";
+       sha256 = "0xlwphjq36wbdzbzl39m163jhrcxnhnrx0lsvmbq4y2gf20r0bbq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -32946,8 +32961,8 @@ self: {
      }:
      mkDerivation {
        pname = "argo";
-       version = "0.2021.10.17";
-       sha256 = "0chzjpdz2x7nkqhphxj2x9knhdjm9dz2880s6f04p6w4w849pm33";
+       version = "0.2021.10.19";
+       sha256 = "1g1wp0xvmdkgrnws2b3s27k25b7194kk1hmsrrjwb9rjz7jpncps";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35919,6 +35934,26 @@ self: {
        broken = true;
      }) {};
 
+  "aur_7_0_7" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hashable, http-client
+     , http-client-tls, http-types, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "aur";
+       version = "7.0.7";
+       sha256 = "0k8b3rc89ibln7idb1a1f6g3p04f1n7mnk8q8nqiggygf8r6sdnh";
+       libraryHaskellDepends = [
+         aeson base bytestring hashable http-client http-types text
+       ];
+       testHaskellDepends = [
+         base http-client http-client-tls tasty tasty-hunit
+       ];
+       description = "Access metadata from the Arch Linux User Repository";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "aur-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, exceptions, hspec
      , http-client, http-client-tls, mtl, text
@@ -35949,6 +35984,8 @@ self: {
        pname = "aura";
        version = "3.2.6";
        sha256 = "07sry2nf41f101ldcfcf2x5pp0w7qvlvl6m4j5bbkvxp3rmsjbx2";
+       revision = "1";
+       editedCabalFile = "1ilxbi5pvg7ayyfww2y85y2503ihzr1w06w2sgbm3pk6qcjz95jg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -36803,8 +36840,8 @@ self: {
        pname = "aws-arn";
        version = "0.1.0.0";
        sha256 = "0wwmrpmcw01wifcpfsb81fx54c49zgg80h2y11cjpr7qkwdhiqwd";
-       revision = "1";
-       editedCabalFile = "0jcz4wwi46mxymv7d15h5qj2xq8v9b02jqa4ap5r3fa9q6bl9sh3";
+       revision = "2";
+       editedCabalFile = "17yvsm3rqvr8vy8qs7l4xvp3bnlmyvwq8bmb6gjacgz46k30dq0f";
        libraryHaskellDepends = [
          base deriving-compat hashable lens text
        ];
@@ -38394,8 +38431,8 @@ self: {
     ({ mkDerivation, barbies, base, split, template-haskell }:
      mkDerivation {
        pname = "barbies-th";
-       version = "0.1.8";
-       sha256 = "19cznyjds09l8k844bhc1k2m50w455j7n13826z0np01a23qhyad";
+       version = "0.1.9";
+       sha256 = "1brikm7qr2yi3426vgwjjxjrvw060sb0v7jbxrhazjps28f6aa3n";
        libraryHaskellDepends = [ barbies base split template-haskell ];
        testHaskellDepends = [ barbies base ];
        description = "Create strippable HKD via TH";
@@ -40048,8 +40085,8 @@ self: {
      }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.13.1.3";
-       sha256 = "1qycifi7gnfky4pxy3dr7az0iv2s2xykjy4mccy8gki05fsy0lg5";
+       version = "0.13.3";
+       sha256 = "0qakz6fidvhg121j442lsvcz9va0xa0rks41qj293mnrs8savv0p";
        libraryHaskellDepends = [
          base dunai MonadRandom mtl simple-affine-space transformers
        ];
@@ -40321,6 +40358,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "benchpress_0_2_2_18" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, time }:
+     mkDerivation {
+       pname = "benchpress";
+       version = "0.2.2.18";
+       sha256 = "1ihg97zkvhq7sbp851q3qdpf2mmi2l88w742pq6cldhlhb8q7xa5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base mtl time ];
+       executableHaskellDepends = [ base bytestring time ];
+       description = "Micro-benchmarking with detailed statistics";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bencode" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, hspec
      , parsec, QuickCheck, transformers, transformers-compat
@@ -44328,6 +44380,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "blaze-builder_0_4_2_2" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, ghc-prim, HUnit
+     , QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "blaze-builder";
+       version = "0.4.2.2";
+       sha256 = "0rxg6vjr0ji6g1nngrqpl4k1q9w66fwkhld9cqm5yfhx0a69kp1c";
+       libraryHaskellDepends = [ base bytestring deepseq ghc-prim text ];
+       testHaskellDepends = [
+         base bytestring HUnit QuickCheck test-framework
+         test-framework-hunit test-framework-quickcheck2 text utf8-string
+       ];
+       description = "Efficient buffered output";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "blaze-builder-conduit" = callPackage
     ({ mkDerivation, base, conduit }:
      mkDerivation {
@@ -46122,6 +46193,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "bound-simple" = callPackage
+    ({ mkDerivation, base, hspec, transformers }:
+     mkDerivation {
+       pname = "bound-simple";
+       version = "0.2.0.0";
+       sha256 = "0vsqbgb75d20sqis9wk00z301hw5kjknszgd0k07rhymhcja0v5j";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base hspec ];
+       description = "A lightweight implementation of 'bound'";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "bounded-array" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -46503,7 +46586,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "brick_0_64_1" = callPackage
+  "brick_0_64_2" = callPackage
     ({ mkDerivation, base, bytestring, config-ini, containers
      , contravariant, data-clist, deepseq, directory, dlist, exceptions
      , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
@@ -46512,8 +46595,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.64.1";
-       sha256 = "13n4m4qfxbh8grqmp3ycl99xf8hszk9539qy73bzz785axgvhhbj";
+       version = "0.64.2";
+       sha256 = "058kpghx5s559z5l9hav44s8vb5lizn8j7v7l4lmvpqx3a6cisn7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47468,14 +47551,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "bugsnag-hs_0_2_0_6" = callPackage
+  "bugsnag-hs_0_2_0_7" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hedgehog, http-client
      , text, time, unordered-containers
      }:
      mkDerivation {
        pname = "bugsnag-hs";
-       version = "0.2.0.6";
-       sha256 = "0kq2mxsl6rm95v551vwjcim0sfk2lhc2n95f28pmglpp5qxc1q7j";
+       version = "0.2.0.7";
+       sha256 = "0wrc9lmx3r3l5hz0avr99f9fcjla5bi4b3iziv59qm93m882hmx3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring http-client text time unordered-containers
@@ -48291,8 +48374,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytelog";
-       version = "0.1.0.0";
-       sha256 = "03acvb13q3bs77qyxsf91b9l2wv6f23lrghqnh2dacsdrg75dpfa";
+       version = "0.1.1.0";
+       sha256 = "06z3m5rimwswkiimgva896vqs7i92pdslgqaxk80iy1as04z218i";
        libraryHaskellDepends = [
          base bytebuild byteslice natural-arithmetic posix-api primitive
        ];
@@ -48843,8 +48926,6 @@ self: {
        libraryHaskellDepends = [ base binary bytestring ];
        description = "An efficient finite map from (byte)strings to values";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "bytestring-typenats" = callPackage
@@ -52823,6 +52904,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "cassava-megaparsec_2_0_4" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
+     , megaparsec, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava-megaparsec";
+       version = "2.0.4";
+       sha256 = "0pg9z38jmrylbj683b6pf7psipp7lrdq6mn1hbj8v2gj5lh8yf8n";
+       libraryHaskellDepends = [
+         base bytestring cassava megaparsec unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring cassava hspec hspec-megaparsec vector
+       ];
+       description = "Megaparsec parser of CSV files that plays nicely with Cassava";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cassava-records" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, cassava, containers
      , foldl, HUnit, QuickCheck, tasty, tasty-hunit, tasty-quickcheck
@@ -56113,7 +56213,7 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
-  "citeproc_0_5" = callPackage
+  "citeproc_0_6" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , case-insensitive, containers, data-default, Diff, directory
      , file-embed, filepath, mtl, pandoc-types, pretty, safe, scientific
@@ -56122,8 +56222,8 @@ self: {
      }:
      mkDerivation {
        pname = "citeproc";
-       version = "0.5";
-       sha256 = "14l7gpa2phgmgcx2mdln1wf1gfqjmbkm5nyxnihrybmrkg9l8yfk";
+       version = "0.6";
+       sha256 = "1dx61f8y32b5w84d2fzaxfgdj2gyr0wyqhh6jl2jf2lfn5cbhll3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -60549,6 +60649,29 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark_0_2_1_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, parsec, tasty
+     , tasty-bench, tasty-hunit, tasty-quickcheck, text, transformers
+     , unicode-transforms
+     }:
+     mkDerivation {
+       pname = "commonmark";
+       version = "0.2.1.1";
+       sha256 = "105szy7l4ji255fwv0kbfcy3i3a3a4197zgj6s9jb12kwbn6n0c7";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers
+         unicode-transforms
+       ];
+       testHaskellDepends = [
+         base parsec tasty tasty-hunit tasty-quickcheck text
+         unicode-transforms
+       ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commonmark-cli" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, commonmark
      , commonmark-extensions, commonmark-pandoc, containers, mtl
@@ -60592,6 +60715,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "commonmark-extensions_0_2_2" = callPackage
+    ({ mkDerivation, base, commonmark, containers, emojis, filepath
+     , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "commonmark-extensions";
+       version = "0.2.2";
+       sha256 = "0jm6w84p2a2gyaljvnlvjjwrwnir1lss3ps53d0bd8mkvhixxrqr";
+       libraryHaskellDepends = [
+         base commonmark containers emojis filepath network-uri parsec text
+         transformers
+       ];
+       testHaskellDepends = [
+         base commonmark parsec tasty tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
+       description = "Pure Haskell commonmark parser";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "commonmark-pandoc" = callPackage
     ({ mkDerivation, base, commonmark, commonmark-extensions
      , pandoc-types, text
@@ -64204,8 +64349,8 @@ self: {
      }:
      mkDerivation {
        pname = "consumers";
-       version = "2.2.0.5";
-       sha256 = "1ramqz680xfh47p5kijcp58nby687lm5vacfxpz57a3p01j39y8s";
+       version = "2.2.0.6";
+       sha256 = "16b21s3j4srjafam3d6s1zc9lwlk5ir875bnfcnjmc5717iv0k29";
        libraryHaskellDepends = [
          base containers exceptions extra hpqtypes lifted-base
          lifted-threads log-base monad-control monad-time mtl stm time
@@ -65435,15 +65580,15 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "core-data_0_2_1_10" = callPackage
+  "core-data_0_2_1_11" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, core-text
      , hashable, prettyprinter, scientific, text, unordered-containers
      , vector
      }:
      mkDerivation {
        pname = "core-data";
-       version = "0.2.1.10";
-       sha256 = "151b8kym71dklgynyjsbzpggbyw7wysa8bv1pkpy94jdbflmlpaf";
+       version = "0.2.1.11";
+       sha256 = "0i4v84gfrjfimc9nh12mf0fabqysm575c8kiq8awk2f1xmbz2f7q";
        libraryHaskellDepends = [
          aeson base bytestring containers core-text hashable prettyprinter
          scientific text unordered-containers vector
@@ -65491,28 +65636,49 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "core-program_0_2_12_0" = callPackage
+  "core-program_0_3_1_0" = callPackage
     ({ mkDerivation, async, base, bytestring, chronologique, core-data
      , core-text, directory, exceptions, filepath, fsnotify, hashable
      , hourglass, mtl, prettyprinter, safe-exceptions, stm
      , template-haskell, terminal-size, text, text-short, transformers
-     , unix
+     , typed-process, unix
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.2.12.0";
-       sha256 = "0gl1cv82h2ax8gf1jjqphkj2481plz64jqq497rvyy2cpqv72kvr";
+       version = "0.3.1.0";
+       sha256 = "0nl0mxff9ky3dhczya7xbfdjs0z3jcfvh5fhw71kk0s86dfvalvs";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
          safe-exceptions stm template-haskell terminal-size text text-short
-         transformers unix
+         transformers typed-process unix
        ];
        description = "Opinionated Haskell Interoperability";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "core-telemetry" = callPackage
+    ({ mkDerivation, async, base, bytestring, chronologique, core-data
+     , core-program, core-text, exceptions, http-streams, io-streams
+     , mtl, random, safe-exceptions, scientific, stm, template-haskell
+     , text, unix
+     }:
+     mkDerivation {
+       pname = "core-telemetry";
+       version = "0.1.7.1";
+       sha256 = "0yfhds4scsjk9x0jb772wdyl2b8mx5n7kn86432lpc3nv33rdwk3";
+       libraryHaskellDepends = [
+         async base bytestring chronologique core-data core-program
+         core-text exceptions http-streams io-streams mtl random
+         safe-exceptions scientific stm template-haskell text unix
+       ];
+       description = "Advanced telemetry";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "core-text" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, colour, deepseq
      , fingertree, hashable, prettyprinter, template-haskell, text
@@ -65530,15 +65696,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "core-text_0_3_4_0" = callPackage
+  "core-text_0_3_5_0" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, colour, deepseq
      , fingertree, hashable, prettyprinter, template-haskell, text
      , text-short
      }:
      mkDerivation {
        pname = "core-text";
-       version = "0.3.4.0";
-       sha256 = "1013s28p90fifkkqldh35wrdrs86fhan0r8q54imb7b8c7lasj3r";
+       version = "0.3.5.0";
+       sha256 = "0h6m0wrkyhzzqchzqwpvkskpmnvzm1qynf8jhqwk759w5yxmxycw";
        libraryHaskellDepends = [
          ansi-terminal base bytestring colour deepseq fingertree hashable
          prettyprinter template-haskell text text-short
@@ -67897,6 +68063,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "cryptohash-md5_0_11_101_0" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
+     , pureMD5, tasty, tasty-hunit, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cryptohash-md5";
+       version = "0.11.101.0";
+       sha256 = "018g13hkmq5782i24b4518hcd926fl6x6fh5hd7b9wlxwc5dn21v";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring pureMD5 tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       description = "Fast, pure and practical MD5 implementation";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "cryptohash-sha1" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, criterion
      , SHA, tasty, tasty-hunit, tasty-quickcheck
@@ -68782,8 +68967,8 @@ self: {
      }:
      mkDerivation {
        pname = "cuckoo";
-       version = "0.3.0";
-       sha256 = "11p7f1br9jyjdwaviy94xwq1jg3kgq5q1pqls20sakgm1f71axls";
+       version = "0.3.1";
+       sha256 = "0zyba60p70qfg24vlas0yp9fqwwrpiqksp5jq0p1qrmrcv9jyx6n";
        libraryHaskellDepends = [
          base bytestring hashes primitive random
        ];
@@ -74280,17 +74465,19 @@ self: {
      }) {};
 
   "dep-t" = callPackage
-    ({ mkDerivation, base, doctest, mtl, rank2classes, sop-core, tasty
-     , tasty-hunit, template-haskell, transformers, unliftio-core
+    ({ mkDerivation, aeson, barbies, base, bytestring, containers
+     , doctest, mtl, rank2classes, sop-core, tasty, tasty-hunit
+     , template-haskell, text, transformers, unliftio-core
      }:
      mkDerivation {
        pname = "dep-t";
-       version = "0.4.5.0";
-       sha256 = "0hmyfq7xkz3l7d2f3d9ax782b6h0vvq1cfcxxnj1dg29hrnpd1ja";
+       version = "0.4.6.0";
+       sha256 = "0mhc5i54r8zbcq9wqmf25761b8dinkldcxq2x9f1l6mdy3zswsg3";
        libraryHaskellDepends = [ base mtl transformers unliftio-core ];
        testHaskellDepends = [
-         base doctest mtl rank2classes sop-core tasty tasty-hunit
-         template-haskell transformers unliftio-core
+         aeson barbies base bytestring containers doctest mtl rank2classes
+         sop-core tasty tasty-hunit template-haskell text transformers
+         unliftio-core
        ];
        description = "Reader-like monad transformer for dependency injection";
        license = lib.licenses.bsd3;
@@ -76445,8 +76632,6 @@ self: {
        ];
        description = "HTML5 canvas backend for diagrams drawing EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "diagrams-contrib" = callPackage
@@ -76484,25 +76669,6 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-core";
-       version = "1.4.2";
-       sha256 = "0qgb43vy23g4fxh3nmxfq6jyp34imqvkhgflaa6rz0iq6d60gl43";
-       revision = "1";
-       editedCabalFile = "0w8mpy0z8kmx4l7cg8sgc1hyixysjfqffdgmnxy5p04airjlbpj7";
-       libraryHaskellDepends = [
-         adjunctions base containers distributive dual-tree lens linear
-         monoid-extras mtl profunctors semigroups unordered-containers
-       ];
-       description = "Core libraries for diagrams EDSL";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "diagrams-core_1_5_0" = callPackage
-    ({ mkDerivation, adjunctions, base, containers, distributive
-     , dual-tree, lens, linear, monoid-extras, mtl, profunctors
-     , semigroups, unordered-containers
-     }:
-     mkDerivation {
-       pname = "diagrams-core";
        version = "1.5.0";
        sha256 = "0y3smp3hiyfdirdak3j4048cgqv7a5q9p2jb6z8na2llys5mrmdn";
        revision = "2";
@@ -76513,7 +76679,6 @@ self: {
        ];
        description = "Core libraries for diagrams EDSL";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "diagrams-graphviz" = callPackage
@@ -76633,39 +76798,6 @@ self: {
      }:
      mkDerivation {
        pname = "diagrams-lib";
-       version = "1.4.3";
-       sha256 = "0gqrcyjyp3p78vmfxvhfjbkkl2xvwcv3qyyinbdcmalb5zb8vyy6";
-       revision = "1";
-       editedCabalFile = "0cqhqm2nz2ls00pfhx8hz6z6g17qhl380h24wp4d6l5msiw7gxq4";
-       libraryHaskellDepends = [
-         active adjunctions array base bytestring cereal colour containers
-         data-default-class diagrams-core diagrams-solve directory
-         distributive dual-tree exceptions filepath fingertree fsnotify
-         hashable intervals JuicyPixels lens linear monoid-extras mtl
-         optparse-applicative process profunctors semigroups tagged text
-         transformers unordered-containers
-       ];
-       testHaskellDepends = [
-         base deepseq diagrams-solve distributive lens numeric-extras
-         QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base criterion diagrams-core ];
-       description = "Embedded domain-specific language for declarative graphics";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "diagrams-lib_1_4_4" = callPackage
-    ({ mkDerivation, active, adjunctions, array, base, bytestring
-     , cereal, colour, containers, criterion, data-default-class
-     , deepseq, diagrams-core, diagrams-solve, directory, distributive
-     , dual-tree, exceptions, filepath, fingertree, fsnotify, hashable
-     , intervals, JuicyPixels, lens, linear, monoid-extras, mtl
-     , numeric-extras, optparse-applicative, process, profunctors
-     , QuickCheck, semigroups, tagged, tasty, tasty-hunit
-     , tasty-quickcheck, text, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "diagrams-lib";
        version = "1.4.4";
        sha256 = "09np7kj8si8kcb854f95a0cq392mgbxif8lnazbpfsa1k87d9vzy";
        revision = "1";
@@ -76685,7 +76817,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion diagrams-core ];
        description = "Embedded domain-specific language for declarative graphics";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "diagrams-pandoc" = callPackage
@@ -81474,7 +81605,6 @@ self: {
        ];
        description = "a lightweight DNS proxy server";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "drClickOn" = callPackage
@@ -82099,24 +82229,6 @@ self: {
      }:
      mkDerivation {
        pname = "dual-tree";
-       version = "0.2.2.1";
-       sha256 = "17kdfnf0df0z5pkiifxrlmyd1xd7hjjaazd2kzyajl0gd00vbszx";
-       libraryHaskellDepends = [
-         base monoid-extras newtype-generics semigroups
-       ];
-       testHaskellDepends = [
-         base monoid-extras QuickCheck semigroups testing-feat
-       ];
-       description = "Rose trees with cached and accumulating monoidal annotations";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "dual-tree_0_2_3_0" = callPackage
-    ({ mkDerivation, base, monoid-extras, newtype-generics, QuickCheck
-     , semigroups, testing-feat
-     }:
-     mkDerivation {
-       pname = "dual-tree";
        version = "0.2.3.0";
        sha256 = "0qyn7kb42wvlcvb1wbf1qx3isc2y6k3hzp5iq6ab0r0llw9g6qlg";
        revision = "1";
@@ -82129,7 +82241,6 @@ self: {
        ];
        description = "Rose trees with cached and accumulating monoidal annotations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "dualizer" = callPackage
@@ -82310,14 +82421,14 @@ self: {
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
-  "dunai_0_8_0" = callPackage
+  "dunai_0_8_1" = callPackage
     ({ mkDerivation, base, MonadRandom, simple-affine-space, tasty
      , tasty-hunit, transformers, transformers-base
      }:
      mkDerivation {
        pname = "dunai";
-       version = "0.8.0";
-       sha256 = "06xdn1fqfbpffdcpf9mmkl56797bdh9ijwg7nm98fqhwq0d4jnkv";
+       version = "0.8.1";
+       sha256 = "1zijhrk50cyyrb6jqlf8q0hh87lbfy5k9iy6w2az66nm89ckxrv9";
        libraryHaskellDepends = [
          base MonadRandom simple-affine-space transformers transformers-base
        ];
@@ -82348,8 +82459,8 @@ self: {
     ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }:
      mkDerivation {
        pname = "dunai-test";
-       version = "0.8.0";
-       sha256 = "1n5a30iw0pr94fl1jparlmf0lnw4md4l3r9aq56247cz1npnfaqh";
+       version = "0.8.1";
+       sha256 = "1iy989wz4jnn9g892p7n0f1hj2hd61a01vxnqz5fr0yppbsckp3h";
        libraryHaskellDepends = [
          base dunai normaldistribution QuickCheck
        ];
@@ -83225,6 +83336,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "easy-logger" = callPackage
+    ({ mkDerivation, array, auto-update, base, bytestring, containers
+     , directory, hspec, QuickCheck, quickcheck-assertions
+     , template-haskell, text, unix-compat, unix-time
+     }:
+     mkDerivation {
+       pname = "easy-logger";
+       version = "0.1.0.4";
+       sha256 = "040q410p9i9vwydnsa5n7ycy1bq0gr1p3jvmv1y52hh96bcsbdg1";
+       libraryHaskellDepends = [
+         array auto-update base bytestring containers template-haskell text
+         unix-compat unix-time
+       ];
+       testHaskellDepends = [
+         array auto-update base bytestring containers directory hspec
+         QuickCheck quickcheck-assertions template-haskell text unix-compat
+         unix-time
+       ];
+       description = "Logging made easy";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "easyjson" = callPackage
     ({ mkDerivation, base, mtl, parsec, text, unordered-containers
      , vector
@@ -86783,6 +86916,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Provides FromEnv in envy instance for Record of extensible";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "epanet-haskell" = callPackage
@@ -87780,6 +87914,23 @@ self: {
        broken = true;
      }) {};
 
+  "esqueleto-streaming" = callPackage
+    ({ mkDerivation, base, conduit, esqueleto, persistent-postgresql
+     , persistent-postgresql-streaming, resourcet, transformers
+     }:
+     mkDerivation {
+       pname = "esqueleto-streaming";
+       version = "0.1.0.0";
+       sha256 = "07qmnms0jmqqdn0d3ia1dl3alpggs1mj62gppy0ys8myac0wdk1r";
+       libraryHaskellDepends = [
+         base conduit esqueleto persistent-postgresql
+         persistent-postgresql-streaming resourcet transformers
+       ];
+       description = "Memory-constant streaming of Esqueleto results from PostgreSQL";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "ess" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -90403,23 +90554,25 @@ self: {
   "extensible" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, comonad
      , constraints, deepseq, ghc-prim, hashable, incremental, lens
-     , membership, monad-skeleton, prettyprinter, primitive, profunctors
-     , QuickCheck, StateVar, tagged, template-haskell, text, th-lift
-     , transformers, unordered-containers, vector
+     , membership, prettyprinter, primitive, profunctors, QuickCheck
+     , StateVar, tagged, template-haskell, text, th-lift, transformers
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "extensible";
-       version = "0.8.2";
-       sha256 = "133yid7snb48n4rn15p6nsk2h1shbiw647d5fvapn3lnsb4ymqgv";
+       version = "0.8.3";
+       sha256 = "1cwh7a6mipyh4a7vs1394wmmbm1ms5cs9snl5nd1mg1v455ykcmb";
        libraryHaskellDepends = [
          aeson base bytestring cassava comonad constraints deepseq ghc-prim
-         hashable incremental membership monad-skeleton prettyprinter
-         primitive profunctors QuickCheck StateVar tagged template-haskell
-         text th-lift transformers unordered-containers vector
+         hashable incremental membership prettyprinter primitive profunctors
+         QuickCheck StateVar tagged template-haskell text th-lift
+         transformers unordered-containers vector
        ];
        testHaskellDepends = [ base lens QuickCheck template-haskell ];
        description = "Extensible, efficient, optics-friendly data types and effects";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "extensible-data" = callPackage
@@ -90517,8 +90670,8 @@ self: {
      }:
      mkDerivation {
        pname = "extensible-skeleton";
-       version = "0";
-       sha256 = "0bv6589p8cpzsr167yi98vm0bzkcfgazkxbj35f74ykh8zwqlqfl";
+       version = "0.0.1";
+       sha256 = "10pjnjn60fcmx08vgkdvp8lysd3gz0c5rk829cf2sqk279x8h07h";
        libraryHaskellDepends = [
          base exceptions extensible membership monad-skeleton mtl
          profunctors resourcet template-haskell transformers
@@ -91225,7 +91378,7 @@ self: {
        broken = true;
      }) {};
 
-  "faktory_1_1_1_0" = callPackage
+  "faktory_1_1_2_0" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-qq, async, base
      , bytestring, connection, cryptonite, errors, hspec, markdown-unlit
      , megaparsec, memory, mtl, network, random, safe-exceptions
@@ -91233,8 +91386,8 @@ self: {
      }:
      mkDerivation {
        pname = "faktory";
-       version = "1.1.1.0";
-       sha256 = "1lh427lq991pclzqr112dw4jjalcxpkwl440ygg2fhl6bgn082wx";
+       version = "1.1.2.0";
+       sha256 = "0rsypmqy6gkpsjgzzc20wy5jjw13bb4j2zsxwn9zchyihfpak36a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -100091,10 +100244,8 @@ self: {
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.20.4";
-       sha256 = "0yjm0s9risrc0aj1si8i403k6b1znr8szff1f8ksb5cr9j7nn7gn";
-       revision = "1";
-       editedCabalFile = "0kx2p48b56icbd1bf6y6qbqx7sb7r8d2lcjxb60khiz7ff8kqjw8";
+       version = "0.20.5";
+       sha256 = "0wdpi1lr6cglwig194i9l6jmb54lh5qhwfhx8nn7z2kmww0qpmbv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -103414,8 +103565,8 @@ self: {
      }:
      mkDerivation {
        pname = "gerrit";
-       version = "0.1.1.0";
-       sha256 = "0qkrcf0m2rq31sqd3fqij5c0yfp5pnzj2fx3dh9cwi7dqz24jwsg";
+       version = "0.1.3.0";
+       sha256 = "00jz3p1j3gmz7kk9vscw5m936vj09b0ja5q5gy8p05iz958lfbq4";
        libraryHaskellDepends = [
          aeson aeson-casing base bytestring containers http-client
          http-client-openssl text time
@@ -107491,8 +107642,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-lfs";
-       version = "1.1.1";
-       sha256 = "1jjr73knvc8b7mlabb3yyyc5blfxiwgbdk6lylshfp2fqsmkvhnx";
+       version = "1.1.2";
+       sha256 = "1kfrlpq54s5z84l5sk19vmvlqrybnyqg2nwgh452bdh13z67scmw";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-types network-uri text
@@ -117828,6 +117979,8 @@ self: {
        pname = "hakyll";
        version = "4.15.0.1";
        sha256 = "09arikf44i4llffhi948fy2zdj76zym7z9swjx5p5axc7qvc4sqh";
+       revision = "1";
+       editedCabalFile = "1q0x76cnpjrciigfqh8axx06gq5lpd6fhj2f7ccs0yhsxwnzbk1m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -118038,6 +118191,8 @@ self: {
        pname = "hakyll-convert";
        version = "0.3.0.4";
        sha256 = "09fqr05mvs0qs53psq97kn1s4axinwn1vr5d6af4sqj3zc5k6k39";
+       revision = "1";
+       editedCabalFile = "0sg82zrawgklzkzpj8gpigwh1ixzi2igsxl8s881skq1z9k1fphj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119072,6 +119227,38 @@ self: {
        broken = true;
      }) {};
 
+  "hapistrano_0_4_3_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, base, directory
+     , filepath, formatting, gitrev, hspec, hspec-discover, mtl
+     , optparse-applicative, path, path-io, process, QuickCheck
+     , silently, stm, temporary, time, transformers, typed-process, yaml
+     }:
+     mkDerivation {
+       pname = "hapistrano";
+       version = "0.4.3.0";
+       sha256 = "05aphcj0pfqiwg6xxagf9d81qv4qqs8rbk140i9d9xvhyis3fl73";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base filepath gitrev mtl path process stm time
+         transformers typed-process yaml
+       ];
+       executableHaskellDepends = [
+         aeson async base formatting gitrev optparse-applicative path
+         path-io stm yaml
+       ];
+       testHaskellDepends = [
+         base directory filepath hspec mtl path path-io process QuickCheck
+         silently temporary yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A deployment library for Haskell applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "happindicator" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, glib, gtk
      , gtk2hs-buildtools, libappindicator-gtk2, mtl
@@ -120684,19 +120871,24 @@ self: {
      }) {};
 
   "hashes" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, memory, QuickCheck }:
+    ({ mkDerivation, base, bytestring, criterion, openssl, QuickCheck
+     , sydtest
+     }:
      mkDerivation {
        pname = "hashes";
-       version = "0.1.0.1";
-       sha256 = "0r686g8ksgl680s11m433z0d5b9hq8dz7k2as31qm2r2b6rvg7yd";
+       version = "0.2.1.0";
+       sha256 = "1bj24iwnaxp6knnpili6gfwpdpnl1fdaaifadqn9yy621dw0hw2x";
        libraryHaskellDepends = [ base bytestring ];
-       testHaskellDepends = [ base bytestring QuickCheck ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion memory QuickCheck
-       ];
+       librarySystemDepends = [ openssl ];
+       testHaskellDepends = [ base bytestring QuickCheck sydtest ];
+       testSystemDepends = [ openssl ];
+       benchmarkHaskellDepends = [ base bytestring criterion ];
+       benchmarkSystemDepends = [ openssl ];
        description = "Hash functions";
        license = lib.licenses.mit;
-     }) {};
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) openssl;};
 
   "hashflare" = callPackage
     ({ mkDerivation, base, containers, simple-money }:
@@ -120841,6 +121033,8 @@ self: {
        pname = "hashtables";
        version = "1.2.4.1";
        sha256 = "0vgggm7bqq55zmqj6qji89bfj3k1rdkikkfhyg81vsqf0f3bzhqa";
+       revision = "1";
+       editedCabalFile = "170m0vidlcm1vazxmx0vgc9l9dkdqv3z9licvgvmh30qbck599fb";
        libraryHaskellDepends = [
          base ghc-prim hashable primitive vector
        ];
@@ -121921,8 +122115,8 @@ self: {
        pname = "haskell-lsp";
        version = "0.24.0.0";
        sha256 = "0gw289wy91h0qv4filw3glw3rrjvmr5j591wrdiwc1bl3w56bpig";
-       revision = "1";
-       editedCabalFile = "0px7k5768rnxfqi9cf2g2f99kh2kwmyy2vkzszcp2kgxhb7qzcha";
+       revision = "2";
+       editedCabalFile = "1zcm43g0pyba9vdlqj5whd3743zpfi8cy94p9gdh5fvcbb8wv5jn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -122444,8 +122638,8 @@ self: {
        pname = "haskell-src";
        version = "1.0.3.1";
        sha256 = "0cjigvshk4b8wqdk0v0hz9ag1kyjjsmqsy4a1m3n28ac008cg746";
-       revision = "4";
-       editedCabalFile = "0cyqdw77clzz7mq0b4c0jg2d1kdz9xii41268w2psmqmfpyn29pc";
+       revision = "5";
+       editedCabalFile = "1qaibp1b1szb3ci5lhsxa3lh7iwyfzr5gjnmb4nypqwjqs05dk2c";
        libraryHaskellDepends = [ array base pretty syb ];
        libraryToolDepends = [ happy ];
        description = "Support for manipulating Haskell source code";
@@ -140520,28 +140714,29 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "hslua_1_3_0_2" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
-     , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
-     , tasty-quickcheck, text
+  "hslua_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions
+     , hslua-classes, hslua-core, hslua-marshalling
+     , hslua-objectorientation, hslua-packaging, mtl, tasty, tasty-hslua
+     , tasty-hunit, text
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.3.0.2";
-       sha256 = "0p39xm0mmxzs5x6aim11qkb7npn0d9h7li2kwfhry0dijd1vm18i";
-       configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
+       version = "2.0.0";
+       sha256 = "02sy42625pcasxk3c5c0lf08zffq726ip2ylfbvbzlxpyw313vjq";
        libraryHaskellDepends = [
-         base bytestring containers exceptions mtl text
+         base bytestring containers exceptions hslua-classes hslua-core
+         hslua-marshalling hslua-objectorientation hslua-packaging mtl text
        ];
-       librarySystemDepends = [ lua5_3 ];
        testHaskellDepends = [
-         base bytestring containers exceptions mtl QuickCheck
-         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+         base bytestring containers exceptions hslua-classes hslua-core
+         hslua-marshalling hslua-objectorientation hslua-packaging mtl tasty
+         tasty-hslua tasty-hunit text
        ];
        description = "Bindings to Lua, an embeddable scripting language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-     }) {inherit (pkgs) lua5_3;};
+     }) {};
 
   "hslua-aeson" = callPackage
     ({ mkDerivation, aeson, base, bytestring, hashable, hslua, hspec
@@ -140564,6 +140759,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-classes" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions
+     , hslua-core, hslua-marshalling, lua-arbitrary, QuickCheck
+     , quickcheck-instances, tasty, tasty-hslua, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua-classes";
+       version = "2.0.0";
+       sha256 = "1vnck29395dc4rcyr082vxyf8pz5llz73rpvkl3sq8029pj9jwsl";
+       libraryHaskellDepends = [
+         base bytestring containers exceptions hslua-core hslua-marshalling
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring containers exceptions hslua-core hslua-marshalling
+         lua-arbitrary QuickCheck quickcheck-instances tasty tasty-hslua
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "Type classes for HsLua";
+       license = lib.licenses.mit;
+     }) {};
+
   "hslua-core" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, lua, lua-arbitrary
      , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
@@ -140571,8 +140789,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-core";
-       version = "1.0.0";
-       sha256 = "1dkm0w0cpdkakx2ka8csjpg2dlzv49xxij884g1kzwg2k85l4xyy";
+       version = "2.0.0";
+       sha256 = "12sgrf7hm7jyfsv960n9jcciwdx16v8jyc2y8qw08fsvw9dfx1h1";
        libraryHaskellDepends = [
          base bytestring exceptions lua mtl text
        ];
@@ -140582,9 +140800,47 @@ self: {
        ];
        description = "Bindings to Lua, an embeddable scripting language";
        license = lib.licenses.mit;
+     }) {};
+
+  "hslua-examples" = callPackage
+    ({ mkDerivation, base, bytestring, hslua, hslua-marshalling, lua
+     , text
+     }:
+     mkDerivation {
+       pname = "hslua-examples";
+       version = "2.0.0";
+       sha256 = "12wkhs83yrragwfrgl7xdgzs4bgm3zawrkxkh16dxn619brh7n8z";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring hslua hslua-marshalling lua text
+       ];
+       description = "Examples of how to combine Haskell and Lua";
+       license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
-     }) {lua-arbitrary = null;};
+     }) {};
+
+  "hslua-marshalling" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hslua-core
+     , lua-arbitrary, mtl, QuickCheck, quickcheck-instances, tasty
+     , tasty-hslua, tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua-marshalling";
+       version = "2.0.0";
+       sha256 = "1slyj0szy1ancymx2ky013q8f6sd337gpa1bbbyfl7y8s2qx7idl";
+       libraryHaskellDepends = [
+         base bytestring containers hslua-core mtl text
+       ];
+       testHaskellDepends = [
+         base bytestring containers hslua-core lua-arbitrary mtl QuickCheck
+         quickcheck-instances tasty tasty-hslua tasty-hunit tasty-quickcheck
+         text
+       ];
+       description = "Marshalling of values between Haskell and Lua";
+       license = lib.licenses.mit;
+     }) {};
 
   "hslua-module-doclayout" = callPackage
     ({ mkDerivation, base, doclayout, hslua, tasty, tasty-hunit
@@ -140618,6 +140874,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-module-path_1_0_0" = callPackage
+    ({ mkDerivation, base, filepath, hslua, hslua-marshalling
+     , hslua-packaging, tasty, tasty-hunit, tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-path";
+       version = "1.0.0";
+       sha256 = "1yhalkvz2pyhv6fw1a5sd1a4zcd3qarrcbhfk6z80wh1j23cabzg";
+       libraryHaskellDepends = [
+         base filepath hslua hslua-marshalling hslua-packaging text
+       ];
+       testHaskellDepends = [
+         base filepath hslua hslua-marshalling hslua-packaging tasty
+         tasty-hunit tasty-lua text
+       ];
+       description = "Lua module to work with file paths";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hslua-module-system" = callPackage
     ({ mkDerivation, base, containers, directory, exceptions, hslua
      , tasty, tasty-hunit, tasty-lua, temporary, text
@@ -140636,6 +140912,27 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-module-system_1_0_0" = callPackage
+    ({ mkDerivation, base, directory, exceptions, hslua-core
+     , hslua-marshalling, hslua-packaging, tasty, tasty-hunit, tasty-lua
+     , temporary, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-system";
+       version = "1.0.0";
+       sha256 = "1qvc2200mi1pqckjhav3d488nc4bfh1qv4mgaqx35njda8an6l9q";
+       libraryHaskellDepends = [
+         base directory exceptions hslua-core hslua-marshalling
+         hslua-packaging temporary text
+       ];
+       testHaskellDepends = [
+         base hslua-core hslua-packaging tasty tasty-hunit tasty-lua text
+       ];
+       description = "Lua module wrapper around Haskell's System module";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hslua-module-text" = callPackage
     ({ mkDerivation, base, bytestring, hslua, tasty, tasty-hunit
      , tasty-lua, text
@@ -140654,6 +140951,90 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hslua-module-text_1_0_0" = callPackage
+    ({ mkDerivation, base, hslua-core, hslua-marshalling
+     , hslua-packaging, tasty, tasty-hunit, tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-text";
+       version = "1.0.0";
+       sha256 = "0ymmca9nmxhwghyrbs08g0d0k49zby5rrvqjzxz332yh2nvi2fg1";
+       libraryHaskellDepends = [
+         base hslua-core hslua-marshalling hslua-packaging text
+       ];
+       testHaskellDepends = [
+         base hslua-core hslua-packaging tasty tasty-hunit tasty-lua text
+       ];
+       description = "Lua module for text";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "hslua-module-version" = callPackage
+    ({ mkDerivation, base, filepath, hslua, hslua-marshalling
+     , hslua-packaging, tasty, tasty-hunit, tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-version";
+       version = "1.0.0";
+       sha256 = "1kbk0iva5g4garpx0d5l1gr6zlcfi565mscqr602dr88as87nfyn";
+       libraryHaskellDepends = [
+         base filepath hslua hslua-marshalling hslua-packaging text
+       ];
+       testHaskellDepends = [
+         base filepath hslua hslua-marshalling hslua-packaging tasty
+         tasty-hunit tasty-lua text
+       ];
+       description = "Lua module to work with version specifiers";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "hslua-objectorientation" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions
+     , hslua-core, hslua-marshalling, lua-arbitrary, mtl, QuickCheck
+     , quickcheck-instances, tasty, tasty-hslua, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua-objectorientation";
+       version = "2.0.0";
+       sha256 = "0rmzvskyvfz1salh8nyfpl56qr1jdcx5wg1sa5vp1ihyjgyrsspy";
+       libraryHaskellDepends = [
+         base bytestring containers exceptions hslua-core hslua-marshalling
+         mtl text
+       ];
+       testHaskellDepends = [
+         base bytestring containers exceptions hslua-core hslua-marshalling
+         lua-arbitrary mtl QuickCheck quickcheck-instances tasty tasty-hslua
+         tasty-hunit tasty-quickcheck text
+       ];
+       description = "Object orientation tools for HsLua";
+       license = lib.licenses.mit;
+     }) {};
+
+  "hslua-packaging" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hslua-core
+     , hslua-marshalling, hslua-objectorientation, mtl, tasty
+     , tasty-hslua, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "hslua-packaging";
+       version = "2.0.0";
+       sha256 = "0zb9cdbrsqs882r56vbxi9v6r34kqhacb4dwm85j5yhdmpdy0p7d";
+       libraryHaskellDepends = [
+         base containers hslua-core hslua-marshalling
+         hslua-objectorientation mtl text
+       ];
+       testHaskellDepends = [
+         base bytestring hslua-core hslua-marshalling
+         hslua-objectorientation mtl tasty tasty-hslua tasty-hunit text
+       ];
+       description = "Utilities to build Lua modules";
+       license = lib.licenses.mit;
+     }) {};
+
   "hsluv-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, colour, containers }:
      mkDerivation {
@@ -141946,13 +142327,14 @@ self: {
      }) {};
 
   "hspecVariant" = callPackage
-    ({ mkDerivation, base, hspec, QuickCheckVariant }:
+    ({ mkDerivation, base, hspec, QuickCheck, QuickCheckVariant }:
      mkDerivation {
        pname = "hspecVariant";
-       version = "1.0.0.0";
-       sha256 = "0y45jizkf2kfj3yjjkq96kavkfp74vf5dyyjvi9pj3kshf8sx8il";
+       version = "1.0.1.0";
+       sha256 = "1s11faqvqdmizhwhd14lq0q169352hb0fc009sqvv4c4n563xgnh";
        libraryHaskellDepends = [ base hspec QuickCheckVariant ];
-       description = "Spec for testing properties for variant types";
+       testHaskellDepends = [ base hspec QuickCheck QuickCheckVariant ];
+       description = "Spec for testing properties";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -143373,6 +143755,8 @@ self: {
        pname = "htoml";
        version = "1.0.0.3";
        sha256 = "0vw59kmwwqcr6ja9rx2q5l7s78n384cl7fdbq1azp03g6a5diy08";
+       revision = "1";
+       editedCabalFile = "1aci42zkrsbnxh090aah3j2c094gqkb0yh7i2prvlkhfsfi8r70b";
        libraryHaskellDepends = [
          aeson base containers old-locale parsec text time
          unordered-containers vector
@@ -146586,8 +146970,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "hw-rankselect" = callPackage
@@ -148584,7 +148966,6 @@ self: {
        ];
        description = "Shared library used be ide-backend and ide-backend-server";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ide-backend-rts" = callPackage
@@ -148619,7 +149000,6 @@ self: {
        ];
        description = "An IDE backend server";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "ideas" = callPackage
@@ -148858,8 +149238,8 @@ self: {
      }:
      mkDerivation {
        pname = "idris";
-       version = "1.3.3";
-       sha256 = "1pachwc6msw3n1mz2z1r1w6h518w9gbhdvbaa5vi1qp3cn3wm6q4";
+       version = "1.3.4";
+       sha256 = "0f5wrnc5ibpf2pmcj78lvg7cfq4n97ninm62wwx8993kwd6dvm46";
        configureFlags = [ "-fcurses" "-fexeconly" "-fffi" "-fgmp" ];
        isLibrary = true;
        isExecutable = true;
@@ -151036,6 +151416,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "influxdb_1_9_2_1" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, clock, containers, doctest, foldl, http-client
+     , http-types, lens, network, optional-args, raw-strings-qq
+     , scientific, tagged, tasty, tasty-hunit, template-haskell, text
+     , time, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "influxdb";
+       version = "1.9.2.1";
+       sha256 = "1w47wfzrl6bqac251qfpq7mja9n08kf9cgp76mmyfq3yfzcxn1wl";
+       isLibrary = true;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring clock containers foldl http-client
+         http-types lens network optional-args scientific tagged text time
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base containers doctest lens raw-strings-qq tasty tasty-hunit
+         template-haskell time vector
+       ];
+       description = "InfluxDB client library for Haskell";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "informative" = callPackage
     ({ mkDerivation, base, containers, csv, highlighting-kate
      , http-conduit, monad-logger, pandoc, persistent
@@ -155880,33 +156288,30 @@ self: {
        license = lib.licenses.asl20;
      }) {};
 
-  "jose_0_8_5" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
-     , bytestring, concise, containers, cryptonite, hspec, lens, memory
-     , monad-time, mtl, network-uri, pem, QuickCheck
-     , quickcheck-instances, safe, tasty, tasty-hspec, tasty-quickcheck
-     , template-haskell, text, time, unordered-containers, vector, x509
+  "jose_0_9" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , concise, containers, cryptonite, hspec, lens, memory, monad-time
+     , mtl, network-uri, pem, QuickCheck, quickcheck-instances, tasty
+     , tasty-hspec, tasty-quickcheck, template-haskell, text, time, x509
      }:
      mkDerivation {
        pname = "jose";
-       version = "0.8.5";
-       sha256 = "0d3dgm12bjdmb806599amrxqkq1rz9bs5rkp8smllvrqyxc1qn9h";
+       version = "0.9";
+       sha256 = "0kii03gr6n8ayp1q3hid5qslzwgxm6isjnw8klvg7j82kliikycj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base base64-bytestring bytestring concise
-         containers cryptonite lens memory monad-time mtl network-uri
-         QuickCheck quickcheck-instances safe template-haskell text time
-         unordered-containers vector x509
+         aeson base base64-bytestring bytestring concise containers
+         cryptonite lens memory monad-time mtl network-uri QuickCheck
+         quickcheck-instances template-haskell text time x509
        ];
        testHaskellDepends = [
-         aeson attoparsec base base64-bytestring bytestring concise
-         containers cryptonite hspec lens memory monad-time mtl network-uri
-         pem QuickCheck quickcheck-instances safe tasty tasty-hspec
-         tasty-quickcheck template-haskell text time unordered-containers
-         vector x509
+         aeson base base64-bytestring bytestring concise containers
+         cryptonite hspec lens mtl network-uri pem QuickCheck
+         quickcheck-instances tasty tasty-hspec tasty-quickcheck text time
+         x509
        ];
-       description = "Javascript Object Signing and Encryption and JSON Web Token library";
+       description = "JSON Object Signing and Encryption (JOSE) and JSON Web Token (JWT) library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
      }) {};
@@ -157500,7 +157905,6 @@ self: {
        ];
        description = "Extract substructures from JSON by following a path";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "juandelacosa" = callPackage
@@ -158369,6 +158773,42 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "katip_0_8_6_0" = callPackage
+    ({ mkDerivation, aeson, async, auto-update, base, blaze-builder
+     , bytestring, containers, criterion, deepseq, directory, either
+     , filepath, hostname, microlens, microlens-th, monad-control, mtl
+     , old-locale, quickcheck-instances, regex-tdfa, resourcet
+     , safe-exceptions, scientific, semigroups, stm, string-conv, tasty
+     , tasty-golden, tasty-hunit, tasty-quickcheck, template-haskell
+     , text, time, time-locale-compat, transformers, transformers-base
+     , transformers-compat, unix, unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "katip";
+       version = "0.8.6.0";
+       sha256 = "02rq2rl9cgxfay6bnxzh7r354x20hj8zdc60pfhvh3l8naslyk5z";
+       libraryHaskellDepends = [
+         aeson async auto-update base bytestring containers either hostname
+         microlens microlens-th monad-control mtl old-locale resourcet
+         safe-exceptions scientific semigroups stm string-conv
+         template-haskell text time transformers transformers-base
+         transformers-compat unix unliftio-core unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory microlens
+         quickcheck-instances regex-tdfa safe-exceptions stm tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         time time-locale-compat unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         aeson async base blaze-builder criterion deepseq directory filepath
+         safe-exceptions text time transformers unix
+       ];
+       description = "A structured logging framework";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "katip-datadog" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, binary, bytestring
      , conduit, conduit-extra, connection, containers, katip, network
@@ -161490,7 +161930,6 @@ self: {
        ];
        description = "LambdaCube 3D IR";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lambdacube-edsl" = callPackage
@@ -161507,7 +161946,6 @@ self: {
        ];
        description = "LambdaCube 3D EDSL definition";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lambdacube-engine" = callPackage
@@ -161527,7 +161965,6 @@ self: {
        ];
        description = "3D rendering engine written entirely in Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lambdacube-examples" = callPackage
@@ -161544,7 +161981,6 @@ self: {
        ];
        description = "Examples for LambdaCube";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "lambdacube-gl" = callPackage
@@ -165312,8 +165748,8 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.5.2.0";
-       sha256 = "0mkr8ng7i4cli8wscqy2l8112nr7wdg8dh32li354fvahmv6i4si";
+       version = "1.5.3.0";
+       sha256 = "14fpvclm0xvwsgc2hgnq3jxlh5mdbq7gn713nnblc92pghfgbx18";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -166789,6 +167225,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "libyaml-streamly" = callPackage
+    ({ mkDerivation, base, bytestring, safe-exceptions, streamly }:
+     mkDerivation {
+       pname = "libyaml-streamly";
+       version = "0.2.0";
+       sha256 = "0lvpavy78clizrizj7zlj9msgfwkhj3c6shnss7swnp1xfi1a1k9";
+       libraryHaskellDepends = [
+         base bytestring safe-exceptions streamly
+       ];
+       description = "Low-level, streaming YAML interface via streamly";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "libzfs" = callPackage
     ({ mkDerivation, base, mtl, nvpair, transformers, zfs }:
      mkDerivation {
@@ -172129,15 +172580,28 @@ self: {
      }) {};
 
   "lua" = callPackage
-    ({ mkDerivation, base, bytestring, tasty, tasty-hunit }:
+    ({ mkDerivation, base, lua5_3, tasty, tasty-hunit }:
      mkDerivation {
        pname = "lua";
-       version = "1.0.0";
-       sha256 = "0ly10sy9xlvalaximff287wd6hr3hxqicsx5alwpqbg9ajxlx798";
-       libraryHaskellDepends = [ base bytestring ];
-       testHaskellDepends = [ base bytestring tasty tasty-hunit ];
+       version = "2.0.0";
+       sha256 = "1k2xv210373r4y1bzzdfbkax9yypc1y7nhiamyl8gxcfp1fnjg7q";
+       configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
+       libraryHaskellDepends = [ base ];
+       librarySystemDepends = [ lua5_3 ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Lua, an embeddable scripting language";
        license = lib.licenses.mit;
+     }) {inherit (pkgs) lua5_3;};
+
+  "lua-arbitrary" = callPackage
+    ({ mkDerivation, base, lua, QuickCheck }:
+     mkDerivation {
+       pname = "lua-arbitrary";
+       version = "1.0.0";
+       sha256 = "13kfpiyln1i3d1a47fpf00lrcj4m9dyg80zrqclx7wzy9p8ixh7l";
+       libraryHaskellDepends = [ base lua QuickCheck ];
+       description = "Arbitrary instances for Lua types";
+       license = lib.licenses.mit;
      }) {};
 
   "lua-bc" = callPackage
@@ -176010,8 +176474,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.13.0";
-       sha256 = "1wyhqj7jvk94px3npid3lncyccv2xsc3rmfcw616xrf4xsqwisx2";
+       version = "50200.14.0";
+       sha256 = "0x0f7s4pz0ds1vg8v8qycafmg2i21542p8bmhhrzzwj2m99bgx5d";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -178502,6 +178966,28 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "microlens-aeson_2_4_0" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq
+     , hashable, microlens, scientific, tasty, tasty-hunit, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "microlens-aeson";
+       version = "2.4.0";
+       sha256 = "103r9i4ky58y34rb82dmw20npbzzk4brn9nn4650m7mdzcgmz0zm";
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring deepseq hashable microlens
+         scientific text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring deepseq hashable microlens tasty tasty-hunit
+         text unordered-containers vector
+       ];
+       description = "Law-abiding lenses for Aeson, using microlens";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "microlens-contra" = callPackage
     ({ mkDerivation, base, microlens }:
      mkDerivation {
@@ -183100,28 +183586,12 @@ self: {
      }:
      mkDerivation {
        pname = "monoid-extras";
-       version = "0.5.1";
-       sha256 = "0xfrkgqn9d31z54l617m3w3kkd5m9vjb4yl247r3zzql3mpb1f37";
-       revision = "2";
-       editedCabalFile = "0gbrwpr7rzh9mmf59yhs74hixgclmxngaxx51j7pvr6wnkbvz3a3";
-       libraryHaskellDepends = [ base groups semigroupoids semigroups ];
-       benchmarkHaskellDepends = [ base criterion semigroups ];
-       description = "Various extra monoid-related definitions and utilities";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "monoid-extras_0_6" = callPackage
-    ({ mkDerivation, base, criterion, groups, semigroupoids, semigroups
-     }:
-     mkDerivation {
-       pname = "monoid-extras";
        version = "0.6";
        sha256 = "0ki1d3b1xpf653qj7brlqdgngghwrnmapy5gja75iiydfx2506a1";
        libraryHaskellDepends = [ base groups semigroupoids ];
        benchmarkHaskellDepends = [ base criterion semigroups ];
        description = "Various extra monoid-related definitions and utilities";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "monoid-owns" = callPackage
@@ -187337,6 +187807,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) libmysqlclient;};
 
+  "mysql_0_2_1" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, hspec
+     , libmysqlclient
+     }:
+     mkDerivation {
+       pname = "mysql";
+       version = "0.2.1";
+       sha256 = "051w428arxbix06a52dacqjpnkfx42zbazxsd3l9d857dsd0kl3g";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [ base bytestring containers ];
+       librarySystemDepends = [ libmysqlclient ];
+       testHaskellDepends = [ base bytestring hspec ];
+       description = "A low-level MySQL client library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {inherit (pkgs) libmysqlclient;};
+
   "mysql-effect" = callPackage
     ({ mkDerivation, base, bytestring, extensible-effects, mysql
      , mysql-simple
@@ -187429,6 +187916,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "mysql-simple_0_4_7" = callPackage
+    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
+     , blaze-textual, bytestring, containers, hspec, mysql, old-locale
+     , pcre-light, text, time
+     }:
+     mkDerivation {
+       pname = "mysql-simple";
+       version = "0.4.7";
+       sha256 = "1mhmszpq64h8kxr20iaj1laq46wr2gaqc8xxq1k821i7jfxfld6j";
+       libraryHaskellDepends = [
+         attoparsec base base16-bytestring blaze-builder blaze-textual
+         bytestring containers mysql old-locale pcre-light text time
+       ];
+       testHaskellDepends = [ base blaze-builder hspec text ];
+       description = "A mid-level MySQL client library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "mysql-simple-quasi" = callPackage
     ({ mkDerivation, base, haskell-src-meta, mysql-simple
      , template-haskell
@@ -191372,8 +191878,8 @@ self: {
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.8.0.0";
-       sha256 = "03s47hzw82w2wgyffdqvgcf4i0nz1vmaim7f3j8pniaa2b3xj3gv";
+       version = "0.8.1.0";
+       sha256 = "1lnammw06prn2mqry4g85g92hagwkfnxmv195ljxk5225xlbngy8";
        libraryHaskellDepends = [
          aeson array base base64 binary bytestring case-insensitive
          containers ede enclosed-exceptions http-client http-types network
@@ -191703,8 +192209,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-diff";
-       version = "1.0.14";
-       sha256 = "0d1m65iw0c4x56gbp2rff0k2b54zawr6wn5hiah4q3k0a75r17ny";
+       version = "1.0.15";
+       sha256 = "0sjnihdhiib45chc04hr38g12sgp9rmjx2fibha9qsqla3rjnx3y";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -200180,6 +200686,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pandoc-types_1_22_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "pandoc-types";
+       version = "1.22.1";
+       sha256 = "0z2j306jsiriwhib0201hsllwyck7qcvqci5c25frwsmknr3mls2";
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq ghc-prim QuickCheck syb
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers HUnit QuickCheck string-qq syb
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Types for representing a structured document";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pandoc-unlit" = callPackage
     ({ mkDerivation, base, pandoc }:
      mkDerivation {
@@ -200242,6 +200772,17 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "pandora-io" = callPackage
+    ({ mkDerivation, ghc-prim, pandora }:
+     mkDerivation {
+       pname = "pandora-io";
+       version = "0.4.7";
+       sha256 = "1kdm9g651g0836q2rc8ahqa9ys72xsy8z1ssawf4d339f8id83v5";
+       libraryHaskellDepends = [ ghc-prim pandora ];
+       description = "...";
+       license = lib.licenses.mit;
+     }) {};
+
   "pang-a-lambda" = callPackage
     ({ mkDerivation, base, bytestring, containers, IfElse, mtl, SDL
      , SDL-gfx, SDL-ttf, transformers, Yampa
@@ -205152,6 +205693,25 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "persistent-postgresql-streaming" = callPackage
+    ({ mkDerivation, base, conduit, monad-logger, mtl, persistent
+     , persistent-postgresql, postgresql-simple, resourcet, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "persistent-postgresql-streaming";
+       version = "0.1.0.0";
+       sha256 = "0k9dvlhjhnrb64apr8w6hbyhvrvibgfszp2gm9zrks3mh729i5k3";
+       libraryHaskellDepends = [
+         base conduit monad-logger mtl persistent persistent-postgresql
+         postgresql-simple resourcet text transformers
+       ];
+       description = "Memory-constant streaming of Persistent entities from PostgreSQL";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "persistent-protobuf" = callPackage
     ({ mkDerivation, base, bytestring, persistent, protocol-buffers
      , protocol-buffers-descriptor, template-haskell, text
@@ -205403,6 +205963,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "persistent-typed-db_0_1_0_5" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
+     , hspec-discover, http-api-data, monad-logger, path-pieces
+     , persistent, resource-pool, resourcet, template-haskell, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "persistent-typed-db";
+       version = "0.1.0.5";
+       sha256 = "0xqvaypl987br15pymky9qa1z62sfa32kmcgpvnl8zpgdjsa17nc";
+       libraryHaskellDepends = [
+         aeson base bytestring conduit http-api-data monad-logger
+         path-pieces persistent resource-pool resourcet template-haskell
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring conduit esqueleto hspec http-api-data
+         monad-logger path-pieces persistent resource-pool resourcet
+         template-haskell text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Type safe access to multiple database schemata";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "persistent-vector" = callPackage
     ({ mkDerivation, base, containers, criterion, deepseq, QuickCheck
      , test-framework, test-framework-quickcheck2, transformers
@@ -209901,6 +210487,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "poker-base" = callPackage
+    ({ mkDerivation, base, containers, extra, generic-arbitrary, hspec
+     , prettyprinter, QuickCheck, safe-money, tasty, tasty-discover
+     , tasty-hspec, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "poker-base";
+       version = "0.1.0.0";
+       sha256 = "1w8j62y95d521g9y6j9ikjhzhfnlnrk8mdfxkls270xwk7m6csj6";
+       libraryHaskellDepends = [
+         base containers generic-arbitrary prettyprinter QuickCheck
+         safe-money text
+       ];
+       testHaskellDepends = [
+         base containers extra hspec prettyprinter QuickCheck tasty
+         tasty-discover tasty-hspec tasty-quickcheck text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "A library for core poker types";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "poker-eval" = callPackage
     ({ mkDerivation, array, base, mtl, poker-eval, random, vector }:
      mkDerivation {
@@ -210367,8 +210977,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-check";
-       version = "0.7.0.0";
-       sha256 = "1sb6gz5wz7b7gxmw0jci9kpaafk4m3rf7ghzsk2fnpvzya5fp6lg";
+       version = "0.8.1.0";
+       sha256 = "18nf74y8zcm3hi5gmg8zm6x13rwr17wvbw4bcm779l3v3y3ddwqw";
        libraryHaskellDepends = [
          base containers kind-generics kind-generics-th polysemy QuickCheck
        ];
@@ -210733,7 +211343,7 @@ self: {
        broken = true;
      }) {};
 
-  "polysemy-plugin_0_4_0_0" = callPackage
+  "polysemy-plugin_0_4_1_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
      , ghc, ghc-tcplugins-extra, hspec, hspec-discover
      , inspection-testing, polysemy, should-not-typecheck, syb
@@ -210741,8 +211351,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-plugin";
-       version = "0.4.0.0";
-       sha256 = "0r3cy26smq3z1lw1pjjgankgal5m166c4cflm4chrw4bi056ipss";
+       version = "0.4.1.0";
+       sha256 = "1ry32mldi5mzlayb5anjzw4adqydilxfj1as01an2x9y0hp4yy00";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -215052,10 +215662,8 @@ self: {
      }:
      mkDerivation {
        pname = "primitive-sort";
-       version = "0.1.0.0";
-       sha256 = "147y4y8v00yggfgyf70kzd3pd9r6jvgxkzjsy3xpbp6mjdnzrbm3";
-       revision = "4";
-       editedCabalFile = "167p2a9bc64vfrmxnwr0zh7ddcm41rxchckygxkya46kcrgn07v3";
+       version = "0.1.1.0";
+       sha256 = "0ixx8cvjzsl93lr6pxppyiv12rgwaxh5xv4m56f6b81cxqdx97f2";
        libraryHaskellDepends = [ base contiguous ghc-prim primitive ];
        testHaskellDepends = [
          base containers doctest HUnit primitive QuickCheck smallcheck tasty
@@ -218246,25 +218854,25 @@ self: {
   "purebred-email" = callPackage
     ({ mkDerivation, attoparsec, base, base64-bytestring, bytestring
      , case-insensitive, concise, deepseq, hedgehog, lens, QuickCheck
-     , quickcheck-instances, semigroupoids, semigroups, stringsearch
-     , tasty, tasty-golden, tasty-hedgehog, tasty-hunit
+     , quickcheck-instances, random, semigroupoids, semigroups
+     , stringsearch, tasty, tasty-golden, tasty-hedgehog, tasty-hunit
      , tasty-quickcheck, text, time
      }:
      mkDerivation {
        pname = "purebred-email";
-       version = "0.4.3";
-       sha256 = "00jl1n200nfn8iaqqdpa9h77b14r0fd6amsh46h16ad4ky3p2nkj";
+       version = "0.5";
+       sha256 = "0ibnykfqs438fhpwcq0yqkdnr67rql7ss07fcr5qckr4zxaw8ba1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring case-insensitive
-         concise deepseq lens semigroupoids semigroups stringsearch text
-         time
+         concise deepseq lens random semigroupoids semigroups stringsearch
+         text time
        ];
        testHaskellDepends = [
          attoparsec base bytestring case-insensitive hedgehog lens
-         QuickCheck quickcheck-instances semigroups tasty tasty-golden
-         tasty-hedgehog tasty-hunit tasty-quickcheck text time
+         QuickCheck quickcheck-instances random semigroups tasty
+         tasty-golden tasty-hedgehog tasty-hunit tasty-quickcheck text time
        ];
        description = "types and parser for email messages (including MIME)";
        license = lib.licenses.agpl3Plus;
@@ -218311,8 +218919,8 @@ self: {
      }:
      mkDerivation {
        pname = "purescript";
-       version = "0.14.4";
-       sha256 = "0qda90yycv2yyjdpfqvmsnxbyxpx55b53cfp9rgnbhbrskr0w2vk";
+       version = "0.14.5";
+       sha256 = "06f318hdah076vkviw1ryyg2p0gpbabsp8lbm5x03f2qv92n9j1n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -218689,15 +219297,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "pusher-http-haskell_2_1_0_4" = callPackage
+  "pusher-http-haskell_2_1_0_5" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , cryptonite, hashable, hspec, http-client, http-client-tls
      , http-types, memory, QuickCheck, text, time, unordered-containers
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "2.1.0.4";
-       sha256 = "0mqjxx1jb8kvzhnnpfs0r1zkjlb6n0pwqdr6idjsn3w7yxlf5ldw";
+       version = "2.1.0.5";
+       sha256 = "1nwnwli1pr2f2q77awy4b2ilph0y2hpi4wvv4wj4ha80lpniba55";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-client-tls http-types memory text time
@@ -223297,8 +223905,8 @@ self: {
      }:
      mkDerivation {
        pname = "reactive-banana-automation";
-       version = "0.5.4";
-       sha256 = "1ir2m6d13hg8i4w4vfpnvjv6dvnjmrz2bwl7n6lsac95pm0hbjs3";
+       version = "0.5.5";
+       sha256 = "13vpmyn68ad1g9885aj6dvgyn07f5blr91k4c3gf77ymlwj1a1zn";
        libraryHaskellDepends = [
          base reactive-banana stm time transformers
        ];
@@ -226863,8 +227471,8 @@ self: {
      }:
      mkDerivation {
        pname = "rel8";
-       version = "1.1.0.0";
-       sha256 = "1p67r6l89hnl54sgqxsy5w66cx4xxwcxkidm9n1fbc2gzkd4dzbm";
+       version = "1.2.0.0";
+       sha256 = "0nslc1hsgvv9j5lyf4zi6b3jkakfkv49j9pjan141j1cb0cbpgwa";
        libraryHaskellDepends = [
          aeson base bifunctors bytestring case-insensitive comonad
          contravariant hasql opaleye pretty product-profunctors profunctors
@@ -228851,6 +229459,34 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "rest-rewrite" = callPackage
+    ({ mkDerivation, base, containers, hashable, monad-loops, mtl
+     , parsec, process, QuickCheck, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "rest-rewrite";
+       version = "0.1.1";
+       sha256 = "0absln2c3ia5bj473wr6lahms9x9xj6szk9lgpb9382px038wxrn";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers hashable mtl parsec process text
+         unordered-containers
+       ];
+       executableHaskellDepends = [
+         base containers hashable monad-loops mtl parsec process QuickCheck
+         text time unordered-containers
+       ];
+       testHaskellDepends = [
+         base containers hashable mtl parsec process QuickCheck text
+         unordered-containers
+       ];
+       description = "Rewriting library with online termination checking";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "rest-snap" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, case-insensitive
      , rest-core, safe, snap-core, unordered-containers, uri-encode
@@ -234295,6 +234931,34 @@ self: {
        license = lib.licenses.lgpl3Only;
      }) {};
 
+  "sbp_4_0_3" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, array, base
+     , base64-bytestring, basic-prelude, binary, binary-conduit
+     , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
+     , lens, lens-aeson, monad-loops, resourcet, tasty, tasty-hunit
+     , template-haskell, text, time, yaml
+     }:
+     mkDerivation {
+       pname = "sbp";
+       version = "4.0.3";
+       sha256 = "1pcrpykf6wzpkrgxi08niwadvdk5rab3ddcba28j84d3agzv7192";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson array base base64-bytestring basic-prelude binary bytestring
+         data-binary-ieee754 lens lens-aeson monad-loops template-haskell
+         text
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base basic-prelude binary-conduit bytestring
+         cmdargs conduit conduit-extra lens resourcet time yaml
+       ];
+       testHaskellDepends = [ base basic-prelude tasty tasty-hunit ];
+       description = "SwiftNav's SBP Library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "sbp2udp" = callPackage
     ({ mkDerivation, base, basic-prelude, binary, binary-conduit
      , bytestring, conduit, conduit-extra, network, optparse-generic
@@ -244288,6 +244952,28 @@ self: {
        maintainers = with lib.maintainers; [ turion ];
      }) {};
 
+  "simple-amount" = callPackage
+    ({ mkDerivation, aeson, base, data-default, gmp, hedgehog, HUnit
+     , lens, mpfr, pretty, pretty-show, profunctors, split, tasty
+     , tasty-hedgehog, tasty-hunit, text, time, transformers
+     }:
+     mkDerivation {
+       pname = "simple-amount";
+       version = "0.2.0";
+       sha256 = "1vcms57piz1abvsbsc67m1yzlnkkffz4bgrdg1yqxja7azncpizf";
+       libraryHaskellDepends = [
+         aeson base data-default lens pretty pretty-show profunctors split
+         text time transformers
+       ];
+       librarySystemDepends = [ gmp mpfr ];
+       testHaskellDepends = [
+         aeson base data-default hedgehog HUnit lens pretty pretty-show
+         profunctors split tasty tasty-hedgehog tasty-hunit text time
+         transformers
+       ];
+       license = lib.licenses.bsd3;
+     }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
+
   "simple-atom" = callPackage
     ({ mkDerivation, base, containers, deepseq }:
      mkDerivation {
@@ -249923,6 +250609,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "som" = callPackage
+    ({ mkDerivation, base, containers, deepseq, grid, QuickCheck
+     , random, test-framework, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "som";
+       version = "10.1.11";
+       sha256 = "1fslhbi5gxdjx199g4vaygq57nimhrc4dhqf8nk8nv4b2pwd97nr";
+       libraryHaskellDepends = [ base containers deepseq grid ];
+       testHaskellDepends = [
+         base containers deepseq grid QuickCheck random test-framework
+         test-framework-quickcheck2
+       ];
+       description = "Self-Organising Maps";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "some" = callPackage
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
@@ -252067,6 +252770,76 @@ self: {
        broken = true;
      }) {};
 
+  "squeal-postgresql_0_8_0_0" = callPackage
+    ({ mkDerivation, aeson, async, base, binary, binary-parser
+     , bytestring, bytestring-strict-builder, deepseq, doctest
+     , exceptions, free-categories, gauge, generic-random, generics-sop
+     , hedgehog, hspec, mmorph, monad-control, monad-loops, mtl
+     , network-ip, postgresql-binary, postgresql-libpq, profunctors
+     , QuickCheck, quickcheck-instances, records-sop, resource-pool
+     , scientific, text, time, transformers, transformers-base, unliftio
+     , uuid-types, vector, with-utf8
+     }:
+     mkDerivation {
+       pname = "squeal-postgresql";
+       version = "0.8.0.0";
+       sha256 = "1yk6fayg4nk6597jz9552jv910131fpvjb1hlfvjnx6zhb7lf71q";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary binary-parser bytestring
+         bytestring-strict-builder deepseq exceptions free-categories
+         generics-sop mmorph monad-control mtl network-ip postgresql-binary
+         postgresql-libpq profunctors records-sop resource-pool scientific
+         text time transformers transformers-base unliftio uuid-types vector
+       ];
+       executableHaskellDepends = [
+         base bytestring generics-sop mtl text transformers vector
+       ];
+       testHaskellDepends = [
+         async base bytestring doctest generics-sop hedgehog hspec mtl
+         scientific text time vector with-utf8
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq gauge generic-random generics-sop
+         monad-loops mtl QuickCheck quickcheck-instances scientific text
+         with-utf8
+       ];
+       description = "Squeal PostgreSQL Library";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "squeal-postgresql-ltree" = callPackage
+    ({ mkDerivation, base, bytestring, generics-sop, mtl
+     , postgresql-binary, postgresql-libpq, squeal-postgresql, text
+     }:
+     mkDerivation {
+       pname = "squeal-postgresql-ltree";
+       version = "0.1.0.0";
+       sha256 = "184y3ar72icxbnqasqvma0ri7s1qczmfsangcvqjjwjf3kpnbb87";
+       libraryHaskellDepends = [
+         base bytestring generics-sop mtl postgresql-binary postgresql-libpq
+         squeal-postgresql text
+       ];
+       description = "LTree extension for Squeal";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "squeal-postgresql-uuid-ossp" = callPackage
+    ({ mkDerivation, base, squeal-postgresql }:
+     mkDerivation {
+       pname = "squeal-postgresql-uuid-ossp";
+       version = "0.1.0.0";
+       sha256 = "0b2z4rz3r3dikqa6w8rsi36gw6wvvj7b8rmh2drpp6lykykm8n2s";
+       libraryHaskellDepends = [ base squeal-postgresql ];
+       description = "UUID OSSP extension for Squeal";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "squeather" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath, hedgehog
      , lifted-base, temporary, text
@@ -263078,8 +263851,6 @@ self: {
        ];
        description = "Check multiple items during a tasty test";
        license = lib.licenses.isc;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "tasty-dejafu" = callPackage
@@ -263273,6 +264044,20 @@ self: {
        broken = true;
      }) {};
 
+  "tasty-hslua" = callPackage
+    ({ mkDerivation, base, bytestring, hslua-core, tasty, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "tasty-hslua";
+       version = "1.0.0";
+       sha256 = "07il3h282lj7m9y7cgc2w0gbffzndibwgxqfdv5m2n4kf1c3finl";
+       libraryHaskellDepends = [
+         base bytestring hslua-core tasty tasty-hunit
+       ];
+       description = "Tasty helpers to test HsLua";
+       license = lib.licenses.mit;
+     }) {};
+
   "tasty-hspec" = callPackage
     ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty
      , tasty-quickcheck, tasty-smallcheck
@@ -263525,6 +264310,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "tasty-lua_1_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, directory, file-embed, filepath
+     , hslua-core, hslua-marshalling, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "tasty-lua";
+       version = "1.0.0";
+       sha256 = "1ykl3by81ivz59zy3cqd6xsa4g8g7axwr9hajdbvmwn1b5y4h880";
+       libraryHaskellDepends = [
+         base bytestring file-embed hslua-core hslua-marshalling tasty text
+       ];
+       testHaskellDepends = [
+         base directory filepath hslua-core hslua-marshalling tasty
+         tasty-hunit
+       ];
+       description = "Write tests in Lua, integrate into tasty";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-mgolden" = callPackage
     ({ mkDerivation, ansi-terminal, base, Diff, filepath, hlint, tasty
      , tasty-expected-failure, tasty-hunit, text, typed-process
@@ -264350,6 +265155,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "telega" = callPackage
+    ({ mkDerivation, aeson, base, data-default, http-client, joint
+     , lens, req, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "telega";
+       version = "0.3.0";
+       sha256 = "1i19vn0i89p1p007bj0yfdywd9q2n3pd5gx39r7rcn13rzr40alq";
+       libraryHaskellDepends = [
+         aeson base data-default http-client joint lens req text
+         unordered-containers
+       ];
+       description = "Telegram Bot API binding";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "telegram" = callPackage
     ({ mkDerivation, aeson, base, bytestring, data-default
      , http-conduit, url, utf8-string
@@ -265750,8 +266573,8 @@ self: {
        pname = "test-framework";
        version = "0.8.2.0";
        sha256 = "1hhacrzam6b8f10hyldmjw8pb7frdxh04rfg3farxcxwbnhwgbpm";
-       revision = "6";
-       editedCabalFile = "0wbq9wiaag69nsqxwijzhs5y1hb9kbpkp1x65dvx158cxp8i9w9r";
+       revision = "7";
+       editedCabalFile = "0an5fypqx6r9v3ql5n9xwdxnaq922lpwh759z5y6vx8rasnd98jw";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base containers hostname old-locale
          random regex-posix time xml
@@ -266469,6 +267292,29 @@ self: {
        license = lib.licenses.gpl2Only;
      }) {};
 
+  "texmath_0_12_3_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , mtl, pandoc-types, parsec, process, split, syb, temporary, text
+     , utf8-string, xml
+     }:
+     mkDerivation {
+       pname = "texmath";
+       version = "0.12.3.2";
+       sha256 = "1d9r3na7hmkgr0j63fs50ssll506l1wyqhw0dpap7jk0rdz8pv6n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers mtl pandoc-types parsec split syb text xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath process temporary text
+         utf8-string xml
+       ];
+       description = "Conversion between formats used to represent mathematics";
+       license = lib.licenses.gpl2Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "texrunner" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, directory, filepath
      , HUnit, io-streams, lens, mtl, process, semigroups, temporary
@@ -267312,7 +268158,6 @@ self: {
        ];
        description = "An efficient finite map from Text to values, based on bytestring-trie";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "text-utf7" = callPackage
@@ -269452,14 +270297,14 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
-  "time_1_13" = callPackage
+  "time_1_12" = callPackage
     ({ mkDerivation, base, criterion, deepseq, QuickCheck, random
      , tasty, tasty-hunit, tasty-quickcheck
      }:
      mkDerivation {
        pname = "time";
-       version = "1.13";
-       sha256 = "1i2czgawz0gx3b6mfkcjc8fk4b4jjdlq3znys6kcvzmb6s1lf61d";
+       version = "1.12";
+       sha256 = "0xavlg1lsq0fip6mwvphr4xz2iykys4wsn468hr8qdg6xqab0x0b";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [
          base deepseq QuickCheck random tasty tasty-hunit tasty-quickcheck
@@ -277395,7 +278240,6 @@ self: {
        testHaskellDepends = [ base hspec text ];
        description = "Uber client for Haskell";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "uberlast" = callPackage
@@ -285412,6 +286256,37 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "wai-extra_3_1_7" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, base64-bytestring
+     , bytestring, call-stack, case-insensitive, containers, cookie
+     , data-default-class, directory, fast-logger, hspec, http-types
+     , http2, HUnit, iproute, network, resourcet, streaming-commons
+     , text, time, transformers, unix, vault, wai, wai-logger, word8
+     , zlib
+     }:
+     mkDerivation {
+       pname = "wai-extra";
+       version = "3.1.7";
+       sha256 = "1avf7bjcsbs8l6klp5kkd0cd2dc5n0j0a2yf8813pnwfn5b7qyd4";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base base64-bytestring bytestring call-stack
+         case-insensitive containers cookie data-default-class directory
+         fast-logger http-types http2 HUnit iproute network resourcet
+         streaming-commons text time transformers unix vault wai wai-logger
+         word8
+       ];
+       testHaskellDepends = [
+         aeson base bytestring case-insensitive cookie fast-logger hspec
+         http-types http2 HUnit iproute resourcet text time transformers wai
+         zlib
+       ];
+       description = "Provides some basic WAI handlers and middleware";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "wai-feature-flags" = callPackage
     ({ mkDerivation, aeson, base, bytestring, random, text
      , unordered-containers, wai, warp
@@ -288049,7 +288924,6 @@ self: {
        ];
        description = "WAI based library for web api";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "webapp" = callPackage
@@ -294796,6 +295670,35 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "yaml-streamly" = callPackage
+    ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring
+     , containers, directory, filepath, hspec, hspec-discover, HUnit
+     , libyaml-streamly, mockery, mtl, raw-strings-qq, safe-exceptions
+     , scientific, streamly, template-haskell, temporary, text
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "yaml-streamly";
+       version = "0.12.0";
+       sha256 = "1jvvj1g20n8v7rnbvqgsvqm7l4nnh97ibkvb2zkj2wskir0l00mc";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson attoparsec base bytestring containers directory filepath
+         libyaml-streamly mtl safe-exceptions scientific streamly
+         template-haskell text transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base base-compat bytestring directory hspec HUnit
+         libyaml-streamly mockery raw-strings-qq scientific streamly
+         temporary text unordered-containers vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Support for parsing and rendering YAML documents";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yaml-union" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, filepath
      , hspec, optparse-applicative, QuickCheck, quickcheck-instances
@@ -294906,6 +295809,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "yamlparse-applicative_0_2_0_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers
+     , optparse-applicative, path, path-io, prettyprinter
+     , safe-coloured-text, scientific, text, unordered-containers
+     , validity, validity-text, vector, yaml
+     }:
+     mkDerivation {
+       pname = "yamlparse-applicative";
+       version = "0.2.0.1";
+       sha256 = "1b4qz5qy7349bx7kkz9nf2p13hr8a2xyirsw92y4vigpjd16fvs4";
+       libraryHaskellDepends = [
+         aeson base bytestring containers optparse-applicative path path-io
+         prettyprinter safe-coloured-text scientific text
+         unordered-containers validity validity-text vector yaml
+       ];
+       description = "Declaritive configuration parsing with free docs";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "yampa-canvas" = callPackage
     ({ mkDerivation, base, blank-canvas, stm, time, Yampa }:
      mkDerivation {
@@ -298863,8 +299786,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.18.0.1";
-       sha256 = "0sjzqn1mxqqlqg4zhkl1r3nh125i0pkpl2lplw99dgsbpdv8q71a";
+       version = "0.18.1.0";
+       sha256 = "158wp0c50qa7pmmnr4vm7agz7w37wpi8mk1588g877nwsxy8p4s4";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -299638,6 +300561,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "zlib-bytes" = callPackage
+    ({ mkDerivation, base, byteslice, bytestring, mtl, primitive, tasty
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "zlib-bytes";
+       version = "0.1.0.0";
+       sha256 = "0a8hqk5vw49fiwvdgf5glg2s49zkjgydy6bfasas2zl3ibvcy7xw";
+       libraryHaskellDepends = [ base byteslice mtl primitive ];
+       testHaskellDepends = [
+         base byteslice bytestring primitive tasty tasty-quickcheck
+       ];
+       description = "zlib compression bindings";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "zlib-conduit" = callPackage
     ({ mkDerivation, base, conduit }:
      mkDerivation {
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix
index b79aace9e3b..d272f7375a8 100644
--- a/pkgs/development/haskell-modules/make-package-set.nix
+++ b/pkgs/development/haskell-modules/make-package-set.nix
@@ -205,7 +205,7 @@ in package-set { inherit pkgs lib callPackage; } self // {
     callCabal2nixWithOptions = name: src: extraCabal2nixOptions: args:
       let
         filter = path: type:
-                   pkgs.lib.hasSuffix "${name}.cabal" path ||
+                   pkgs.lib.hasSuffix ".cabal" path ||
                    baseNameOf path == "package.yaml";
         expr = self.haskellSrc2nix {
           inherit name extraCabal2nixOptions;
diff --git a/pkgs/development/python-modules/aiopvpc/default.nix b/pkgs/development/python-modules/aiopvpc/default.nix
index efbe695673a..74c85eb11a2 100644
--- a/pkgs/development/python-modules/aiopvpc/default.nix
+++ b/pkgs/development/python-modules/aiopvpc/default.nix
@@ -15,15 +15,16 @@
 
 buildPythonPackage rec {
   pname = "aiopvpc";
-  version = "2.2.0";
-  disabled = pythonOlder "3.8";
+  version = "2.2.2";
   format = "pyproject";
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "azogue";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hk3giwzzlcqnpw9kx3zrr808nmdb7qwac60fki5395qffd2fpqw";
+    sha256 = "sha256-wNMHzeKJ1kG0jnoI5fO3d5CBXE0cyoK92BkGunXK3pI=";
   };
 
   nativeBuildInputs = [
@@ -49,7 +50,9 @@ buildPythonPackage rec {
       " --cov --cov-report term --cov-report html" ""
   '';
 
-  pythonImportsCheck = [ "aiopvpc" ];
+  pythonImportsCheck = [
+    "aiopvpc"
+  ];
 
   meta = with lib; {
     description = "Python module to download Spanish electricity hourly prices (PVPC)";
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
index d0f90da8fe4..7273b2c16d1 100644
--- a/pkgs/development/python-modules/flux-led/default.nix
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "flux_led";
-  version = "0.24.12";
+  version = "0.24.14";
 
   disabled = pythonOlder "3.7";
 
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "flux_led";
     rev = version;
-    sha256 = "sha256-vhmqfHAqbgDUvbn+dR7TuA5SFjF72/nhCL1h+GPy+9c=";
+    sha256 = "sha256-lHsMQbKKgHjxzaPdnqAY7WAZK3CiWfVr5Z5DWXsvRWI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 7ac02fa05ac..10d33330164 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -7,17 +7,18 @@
 , korean-lunar-calendar
 , pytestCheckHook
 , pythonOlder
-, six
 }:
 
 buildPythonPackage rec {
   pname = "holidays";
   version = "0.11.3.1";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4855afe0ebf428efbcf848477828b889f8515be7f4f15ae26682919369d92774";
+    sha256 = "sha256-SFWv4Ov0KO+8+EhHeCi4ifhRW+f08VriZoKRk2nZJ3Q=";
   };
 
   propagatedBuildInputs = [
@@ -25,18 +26,19 @@ buildPythonPackage rec {
     python-dateutil
     hijri-converter
     korean-lunar-calendar
-    six
   ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "holidays" ];
+  pythonImportsCheck = [
+    "holidays"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/dr-prodigy/python-holidays";
     description = "Generate and work with holidays in Python";
+    homepage = "https://github.com/dr-prodigy/python-holidays";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index 179202da8df..f6fdd60a387 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.2.2";
+  version = "0.3.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nngYdoVY3rXfszoCpUWFtJ0U0Rjczxix/wJDOZD+2O4=";
+    sha256 = "sha256-D0odz4GkKvjuafhEGlHtRnO8lk4rV9y3imaHl7jXqJw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 4d0fdb745c8..e1f09a28c23 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -18,13 +18,14 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.14.0";
+  version = "0.15.0";
+  format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-CoiLMpaPRTISc0EO0jIMw/daTW8MyXQqaeGq0zaykmc=";
+    sha256 = "sha256-NzfHemIYQq2quYs3RNKF7NHfR6Vi8Sx4eRTVT2pTEYk=";
   };
 
   propagatedBuildInputs = [
@@ -55,7 +56,9 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "qcs_api_client" ];
+  pythonImportsCheck = [
+    "qcs_api_client"
+  ];
 
   meta = with lib; {
     description = "Python library for accessing the Rigetti QCS API";
diff --git a/pkgs/development/tools/analysis/sparse/default.nix b/pkgs/development/tools/analysis/sparse/default.nix
index 75541dc112a..780ae828e28 100644
--- a/pkgs/development/tools/analysis/sparse/default.nix
+++ b/pkgs/development/tools/analysis/sparse/default.nix
@@ -4,11 +4,11 @@ let
   GCC_BASE = "${stdenv.cc.cc}/lib/gcc/${stdenv.hostPlatform.uname.processor}-unknown-linux-gnu/${stdenv.cc.cc.version}";
 in stdenv.mkDerivation rec {
   pname = "sparse";
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchurl {
     url = "mirror://kernel/software/devel/sparse/dist/${pname}-${version}.tar.xz";
-    sha256 = "16d8c4dhipjzjf8z4z7pix1pdpqydz0v4r7i345f5s09hjnxpxnl";
+    sha256 = "sha256-arKLSZG8au29c1UCkTYKpqs99B9ZIGqb3paQIIpuOHw=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/tools/haskell/hyper-haskell/default.nix b/pkgs/development/tools/haskell/hyper-haskell/default.nix
index 2b3fb76903e..331f78f7a1e 100644
--- a/pkgs/development/tools/haskell/hyper-haskell/default.nix
+++ b/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -49,5 +49,8 @@ in stdenvNoCC.mkDerivation rec {
     homepage = "https://github.com/HeinrichApfelmus/hyper-haskell";
     license = licenses.bsd3;
     maintainers = [ maintainers.rvl ];
+    # depends on electron-10.4.7 which is marked as insecure:
+    # https://github.com/NixOS/nixpkgs/pull/142641#issuecomment-957358476
+    broken = true;
   };
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index 145ee758002..33d440d6d8a 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -62,7 +62,7 @@ let
           source = fetchGrammar grammar;
           location = if grammar ? location then grammar.location else null;
         };
-      grammars' = (import ./grammars);
+      grammars' = (import ./grammars { inherit lib; });
       grammars = grammars' //
         { tree-sitter-ocaml = grammars'.tree-sitter-ocaml // { location = "ocaml"; }; } //
         { tree-sitter-ocaml-interface = grammars'.tree-sitter-ocaml // { location = "interface"; }; } //
diff --git a/pkgs/games/nudoku/default.nix b/pkgs/games/nudoku/default.nix
index aaa6d324809..d3e3d039d98 100644
--- a/pkgs/games/nudoku/default.nix
+++ b/pkgs/games/nudoku/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, gettext, ncurses }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, pkg-config, gettext, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "nudoku";
@@ -11,6 +11,15 @@ stdenv.mkDerivation rec {
     sha256 = "12v00z3p0ymi8f3w4b4bgl4c76irawn3kmd147r0ap6s9ssx2q6m";
   };
 
+  patches = [
+    # Pull upstream fix for ncurses-6.3
+    (fetchpatch {
+      name = "ncurses-6.3.patch";
+      url = "https://github.com/jubalh/nudoku/commit/93899a0fd72e04b9f257e5f54af53466106b5959.patch";
+      sha256 = "1h3za0dnx8fk3vshql5mhcici8aw8j0vr7ra81p3r1rii4c479lm";
+    })
+  ];
+
   # Allow gettext 0.20
   postPatch = ''
     substituteInPlace configure.ac --replace 0.19 0.20
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 51bd4d725a8..d108ca0d006 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -106,8 +106,16 @@ installPhase() {
             sed -E "s#(libEGL_nvidia)#$i/lib/\\1#" 10_nvidia.json > 10_nvidia.json.fixed
             sed -E "s#(libnvidia-egl-wayland)#$i/lib/\\1#" 10_nvidia_wayland.json > 10_nvidia_wayland.json.fixed
 
-            install -Dm644 10_nvidia.json.fixed $i/share/glvnd/egl_vendor.d/nvidia.json
-            install -Dm644 10_nvidia_wayland.json.fixed $i/share/glvnd/egl_vendor.d/nvidia_wayland.json
+            install -Dm644 10_nvidia.json.fixed $i/share/glvnd/egl_vendor.d/10_nvidia.json
+            install -Dm644 10_nvidia_wayland.json.fixed $i/share/egl/egl_external_platform.d/10_nvidia_wayland.json
+
+            if [[ -f "15_nvidia_gbm.json" ]]; then
+              sed -E "s#(libnvidia-egl-gbm)#$i/lib/\\1#" 15_nvidia_gbm.json > 15_nvidia_gbm.json.fixed
+              install -Dm644 15_nvidia_gbm.json.fixed $i/share/egl/egl_external_platform.d/15_nvidia_gbm.json
+
+              mkdir -p $i/lib/gbm
+              ln -s $i/lib/libnvidia-allocator.so $i/lib/gbm/nvidia-drm_gbm.so
+            fi
         fi
 
     done
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 6f58e3e8f1d..ed8c2a05095 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -41,7 +41,7 @@ let
   i686bundled = versionAtLeast version "391" && !disable32Bit;
 
   libPathFor = pkgs: pkgs.lib.makeLibraryPath [ pkgs.libdrm pkgs.xorg.libXext pkgs.xorg.libX11
-    pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc ];
+    pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc pkgs.wayland ];
 
   self = stdenv.mkDerivation {
     name = "nvidia-x11-${version}${nameSuffix}";
diff --git a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
index 841ee7915a4..90859efd3c4 100644
--- a/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/fts_xapian/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, autoconf, automake, pkg-config, dovecot, libtool, xapian, icu64 }:
 stdenv.mkDerivation rec {
   pname = "fts-xapian";
-  version = "1.4.11";
+  version = "1.4.14";
 
   src = fetchFromGitHub {
     owner = "grosjo";
     repo = "fts-xapian";
     rev = version;
-    sha256 = "sha256-HPmS2Z1PIEM9fc6EerCEigQJg5BK/115zOW2uxFqjP0=";
+    sha256 = "sha256-Banyg10AiM1Jw6Zfl4Dcpc0/6Km48lLVuQ3xRLylE7k=";
   };
 
   buildInputs = [ dovecot xapian icu64 ];
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index e0db6c87929..6726fde94f4 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -1,22 +1,22 @@
-{ lib, python3, groff, less, fetchFromGitHub, fetchpatch }:
+{ lib, python3, groff, less, fetchFromGitHub }:
 let
   py = python3.override {
     packageOverrides = self: super: {
       awscrt = super.awscrt.overridePythonAttrs (oldAttrs: rec {
-        version = "0.11.24";
+        version = "0.12.4";
         src = self.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-uKpovKQEvwCFvgVw7/W1QtAffo48D5sIWav+XgcBYv8=";
+          sha256 = "sha256:1cmfkcv2zzirxsb989vx1hvna9nv24pghcvypl0zaxsjphv97mka";
         };
       });
       botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
-        version = "2.0.0dev148";
+        version = "2.0.0dev155";
         src = fetchFromGitHub {
           owner = "boto";
           repo = "botocore";
-          rev = "c0734f100f61bbef413cb04d9890bbffbccd230f";
-          sha256 = "sha256-ndSJdBF3NMNtpyHgYAksCUBDqlwPhugTkIK6Nby20oI=";
+          rev = "7083e5c204e139dc41f646e0ad85286b5e7c0c23";
+          sha256 = "sha256-aiCc/CXoTem0a9wI/AMBRK3g2BXJi7LpnUY/BxBEKVM=";
         };
         propagatedBuildInputs = super.botocore.propagatedBuildInputs ++ [py.pkgs.awscrt];
       });
@@ -40,24 +40,17 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.2.40"; # N.B: if you change this, change botocore to a matching version too
+  version = "2.3.4"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-IHnNRER9ePKVI9ez15HgxLDR1n6QR0iRESgNqbxQPx8=";
+    sha256 = "sha256-C/NrU+1AixuN4T1N5Zs8xduUQiwuQWvXkitQRnPJdNw=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/mgorny/aws-cli/commit/85361123d2fa12eaedf912c046ffe39aebdd2bad.patch";
-      sha256 = "sha256-1Rb+/CY7ze1/DbJ6TfqHF01cfI2vixZ1dT91bmHTg/A=";
-    })
-  ];
-
   postPatch = ''
-    substituteInPlace setup.py \
+    substituteInPlace setup.cfg \
       --replace "colorama>=0.2.5,<0.4.4" "colorama" \
       --replace "cryptography>=3.3.2,<3.4.0" "cryptography" \
       --replace "docutils>=0.10,<0.16" "docutils" \
@@ -67,7 +60,7 @@ with py.pkgs; buildPythonApplication rec {
       --replace "distro>=1.5.0,<1.6.0" "distro"
   '';
 
-  checkInputs = [ jsonschema mock nose ];
+  checkInputs = [ jsonschema mock pytestCheckHook pytest-xdist ];
 
   propagatedBuildInputs = [
     awscrt
@@ -93,8 +86,6 @@ with py.pkgs; buildPythonApplication rec {
 
     # https://github.com/NixOS/nixpkgs/issues/16144#issuecomment-225422439
     export HOME=$TMP
-
-    AWS_TEST_COMMAND=$out/bin/aws python scripts/ci/run-tests
   '';
 
   postInstall = ''
diff --git a/pkgs/tools/networking/ngrep/default.nix b/pkgs/tools/networking/ngrep/default.nix
index 1e57ac75843..bee8678d1c9 100644
--- a/pkgs/tools/networking/ngrep/default.nix
+++ b/pkgs/tools/networking/ngrep/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     # 'BSD-like' license but that the 'regex' library (in the ngrep tarball) is
     # GPLv2.
     license = "ngrep";  # Some custom BSD-style, see LICENSE.txt
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
     maintainers = [ maintainers.bjornfor ];
   };
 }
diff --git a/pkgs/tools/nix/statix/default.nix b/pkgs/tools/nix/statix/default.nix
index c78ace218c0..1a1f5c4a243 100644
--- a/pkgs/tools/nix/statix/default.nix
+++ b/pkgs/tools/nix/statix/default.nix
@@ -4,16 +4,16 @@ rustPlatform.buildRustPackage rec {
   pname = "statix";
   # also update version of the vim plugin in pkgs/misc/vim-plugins/overrides.nix
   # the version can be found in flake.nix of the source code
-  version = "0.3.5";
+  version = "0.3.6";
 
   src = fetchFromGitHub {
     owner = "nerdypepper";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-vJvHmg6X/B6wQYjeX1FZC4MDGo0HkKbTmQH+l4tZAwg=";
+    sha256 = "sha256-fsEqPr+qtLNmTtxUxjcVDPoG7fjqFImnVHwscy2IBkE=";
   };
 
-  cargoSha256 = "sha256-OfLpnVe1QIjpjpD4ticG/7AxPGFMMjBWN3DdLZq6pA8=";
+  cargoSha256 = "sha256-7fSJhRqZh7lUIe8vVzIVx+1phd+Am+GNzKN62NSuOYs=";
 
   cargoBuildFlags = lib.optionals withJson [ "--features" "json" ];
 
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index 11dad3dd3a3..f6e34e7084b 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -182,7 +182,7 @@ let
         hledger-web
         hlint
         hpack
-        hyper-haskell
+        # hyper-haskell  # depends on electron-10.4.7 which is marked as insecure
         hyper-haskell-server-with-packages
         icepeak
         idris