about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/languages-frameworks/coq.section.md15
-rw-r--r--lib/strings.nix9
-rw-r--r--lib/tests/misc.nix12
-rw-r--r--maintainers/maintainer-list.nix4
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml8
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md2
-rw-r--r--nixos/modules/services/backup/automysqlbackup.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix6
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix24
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names2
-rw-r--r--pkgs/applications/misc/1password/default.nix10
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix3
-rw-r--r--pkgs/applications/misc/joshuto/default.nix4
-rw-r--r--pkgs/applications/misc/twitch-chat-downloader/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json10
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json8
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.json8
-rw-r--r--pkgs/applications/networking/misc/zammad/default.nix2
-rw-r--r--pkgs/applications/networking/misc/zammad/gemset.nix31
-rw-r--r--pkgs/applications/networking/misc/zammad/package.json2
-rw-r--r--pkgs/applications/networking/misc/zammad/source.json5
-rw-r--r--pkgs/applications/office/libreoffice/default.nix392
-rw-r--r--pkgs/applications/science/electronics/vhd2vl/default.nix16
-rw-r--r--pkgs/applications/science/electronics/vhd2vl/test.patch35
-rw-r--r--pkgs/applications/science/logic/coq/default.nix13
-rw-r--r--pkgs/applications/science/logic/monosat/default.nix9
-rw-r--r--pkgs/applications/science/math/ripser/default.nix19
-rw-r--r--pkgs/applications/version-management/rapidsvn/default.nix21
-rw-r--r--pkgs/applications/virtualization/podman/default.nix7
-rw-r--r--pkgs/applications/virtualization/runc/default.nix4
-rw-r--r--pkgs/build-support/coq/default.nix39
-rw-r--r--pkgs/data/documentation/nginx-doc/default.nix40
-rw-r--r--pkgs/data/documentation/nginx-doc/exclude-google-analytics.patch29
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix28
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix4
-rw-r--r--pkgs/development/compilers/alan/2.nix4
-rw-r--r--pkgs/development/compilers/go/1.18.nix4
-rw-r--r--pkgs/development/coq-modules/CoLoR/default.nix2
-rw-r--r--pkgs/development/coq-modules/HoTT/default.nix2
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix3
-rw-r--r--pkgs/development/coq-modules/VST/default.nix2
-rw-r--r--pkgs/development/coq-modules/bignums/default.nix2
-rw-r--r--pkgs/development/coq-modules/compcert/default.nix15
-rw-r--r--pkgs/development/coq-modules/coq-bits/default.nix32
-rw-r--r--pkgs/development/coq-modules/coq-elpi/default.nix4
-rw-r--r--pkgs/development/coq-modules/coqeal/default.nix3
-rw-r--r--pkgs/development/coq-modules/coqhammer/default.nix6
-rw-r--r--pkgs/development/coq-modules/coqprime/default.nix1
-rw-r--r--pkgs/development/coq-modules/coqtail-math/default.nix4
-rw-r--r--pkgs/development/coq-modules/coquelicot/default.nix4
-rw-r--r--pkgs/development/coq-modules/dpdgraph/default.nix4
-rw-r--r--pkgs/development/coq-modules/fiat/HEAD.nix4
-rw-r--r--pkgs/development/coq-modules/flocq/default.nix4
-rw-r--r--pkgs/development/coq-modules/gappalib/default.nix2
-rw-r--r--pkgs/development/coq-modules/heq/default.nix16
-rw-r--r--pkgs/development/coq-modules/hierarchy-builder/default.nix5
-rw-r--r--pkgs/development/coq-modules/interval/default.nix8
-rw-r--r--pkgs/development/coq-modules/itauto/default.nix2
-rw-r--r--pkgs/development/coq-modules/ltac2/default.nix1
-rw-r--r--pkgs/development/coq-modules/math-classes/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp/default.nix9
-rw-r--r--pkgs/development/coq-modules/metacoq/default.nix6
-rw-r--r--pkgs/development/coq-modules/metalib/default.nix1
-rw-r--r--pkgs/development/coq-modules/semantics/default.nix4
-rw-r--r--pkgs/development/coq-modules/simple-io/default.nix6
-rw-r--r--pkgs/development/coq-modules/smtcoq/default.nix8
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml1
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix1
-rw-r--r--pkgs/development/libraries/flatbuffers/1.12.nix26
-rw-r--r--pkgs/development/libraries/flatbuffers/2.0.nix16
-rw-r--r--pkgs/development/libraries/flatbuffers/default.nix (renamed from pkgs/development/libraries/flatbuffers/generic.nix)19
-rw-r--r--pkgs/development/libraries/xgboost/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix12
-rw-r--r--pkgs/development/php-packages/box/default.nix8
-rw-r--r--pkgs/development/php-packages/php-parallel-lint/default.nix8
-rw-r--r--pkgs/development/python-modules/atomman/default.nix10
-rw-r--r--pkgs/development/python-modules/boolean-py/default.nix27
-rw-r--r--pkgs/development/python-modules/chainer/default.nix16
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix28
-rw-r--r--pkgs/development/python-modules/dash/default.nix6
-rw-r--r--pkgs/development/python-modules/datatable/default.nix3
-rw-r--r--pkgs/development/python-modules/dparse2/default.nix50
-rw-r--r--pkgs/development/python-modules/eiswarnung/default.nix6
-rw-r--r--pkgs/development/python-modules/ftputil/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/license-expression/default.nix10
-rw-r--r--pkgs/development/python-modules/mapbox/default.nix3
-rw-r--r--pkgs/development/python-modules/name-that-hash/default.nix44
-rw-r--r--pkgs/development/python-modules/napalm/default.nix6
-rw-r--r--pkgs/development/python-modules/nose/default.nix4
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/puremagic/default.nix4
-rw-r--r--pkgs/development/python-modules/python-rabbitair/default.nix60
-rw-r--r--pkgs/development/python-modules/rflink/default.nix6
-rw-r--r--pkgs/development/python-modules/scikit-bio/default.nix9
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/shapely/default.nix4
-rw-r--r--pkgs/development/python-modules/shapely/library-paths.patch212
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/kdash/default.nix7
-rw-r--r--pkgs/development/tools/misc/libtree/default.nix30
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/default.nix2
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dart.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json8
-rw-r--r--pkgs/games/0verkill/default.nix3
-rw-r--r--pkgs/os-specific/linux/firmware/linux-firmware/default.nix6
-rw-r--r--pkgs/servers/http/nginx/generic.nix19
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix4
-rw-r--r--pkgs/servers/ombi/default.nix8
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/darwin.patch11
-rw-r--r--pkgs/shells/zsh/zsh-fzf-tab/default.nix2
-rw-r--r--pkgs/tools/admin/bubblewrap/default.nix4
-rw-r--r--pkgs/tools/backup/zbackup/default.nix4
-rw-r--r--pkgs/tools/misc/bat/default.nix6
-rw-r--r--pkgs/tools/misc/dotter/default.nix4
-rw-r--r--pkgs/tools/misc/esptool/default.nix37
-rw-r--r--pkgs/tools/networking/aircrack-ng/default.nix4
-rw-r--r--pkgs/tools/networking/getmail6/default.nix4
-rw-r--r--pkgs/tools/security/yubihsm-connector/default.nix40
-rw-r--r--pkgs/tools/security/yubihsm-connector/lockfile-fix.patch115
-rw-r--r--pkgs/tools/security/yubihsm-shell/default.nix59
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix26
-rw-r--r--pkgs/top-level/coq-packages.nix5
-rw-r--r--pkgs/top-level/python-packages.nix8
-rw-r--r--pkgs/top-level/release-haskell.nix1
144 files changed, 1442 insertions, 753 deletions
diff --git a/doc/languages-frameworks/coq.section.md b/doc/languages-frameworks/coq.section.md
index 9a692104a0417..11777b5eef42e 100644
--- a/doc/languages-frameworks/coq.section.md
+++ b/doc/languages-frameworks/coq.section.md
@@ -29,14 +29,19 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
 * `releaseRev` (optional, defaults to `(v: v)`), provides a default mapping from release names to revision hashes/branch names/tags,
 * `displayVersion` (optional), provides a way to alter the computation of `name` from `pname`, by explaining how to display version numbers,
 * `namePrefix` (optional, defaults to `[ "coq" ]`), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
-* `extraNativeBuildInputs` (optional), by default `nativeBuildInputs` just contains `coq`, this allows to add more native build inputs, `nativeBuildInputs` are executables and `buildInputs` are libraries and dependencies,
-* `extraBuildInputs` (optional), this allows to add more build inputs,
-* `mlPlugin` (optional, defaults to `false`). Some extensions (plugins) might require OCaml and sometimes other OCaml packages. Standard dependencies can be added by setting the current option to `true`. For a finer grain control, the `coq.ocamlPackages` attribute can be used in `extraBuildInputs` to depend on the same package set Coq was built against.
-* `useDune2ifVersion` (optional, default to `(x: false)` uses Dune2 to build the package if the provided predicate evaluates to true on the version, e.g. `useDune2if = versions.isGe "1.1"`  will use dune if the version of the package is greater or equal to `"1.1"`,
+* `nativeBuildInputs` (optional), is a list of executables that are required to build the current derivation, in addition to the default ones (namely `which`, `dune` and `ocaml` depending on whether `useDune2`, `useDune2ifVersion` and `mlPlugin` are set).
+* `extraNativeBuildInputs` (optional, deprecated), an additional list of derivation to add to `nativeBuildInputs`,
+* `overrideNativeBuildInputs` (optional) replaces the default list of derivation to which `nativeBuildInputs` and `extraNativeBuildInputs` adds extra elements,
+* `buildInputs` (optional), is a list of libraries and dependencies that are required to build and run the current derivation, in addition to the default one `[ coq ]`,
+* `extraBuildInputs` (optional, deprecated), an additional list of derivation to add to `buildInputs`,
+* `overrideBuildInputs` (optional) replaces the default list of derivation to which `buildInputs` and `extraBuildInputs` adds extras elements,
+* `propagatedBuildInputs` (optional) is passed as is to `mkDerivation`, we recommend to use this for Coq libraries and Coq plugin dependencies, as this makes sure the paths of the compiled libraries and plugins will always be added to the build environements of subsequent derivation, which is necessary for Coq packages to work correctly,
+* `mlPlugin` (optional, defaults to `false`). Some extensions (plugins) might require OCaml and sometimes other OCaml packages. Standard dependencies can be added by setting the current option to `true`. For a finer grain control, the `coq.ocamlPackages` attribute can be used in `nativeBuildInputs`, `buildInputs`, and `propagatedBuildInputs` to depend on the same package set Coq was built against.
+* `useDune2ifVersion` (optional, default to `(x: false)` uses Dune2 to build the package if the provided predicate evaluates to true on the version, e.g. `useDune2ifVersion = versions.isGe "1.1"`  will use dune if the version of the package is greater or equal to `"1.1"`,
 * `useDune2` (optional, defaults to `false`) uses Dune2 to build the package if set to true, the presence of this attribute overrides the behavior of the previous one.
 * `opam-name` (optional, defaults to concatenating with a dash separator the components of `namePrefix` and `pname`), name of the Dune package to build.
 * `enableParallelBuilding` (optional, defaults to `true`), since it is activated by default, we provide a way to disable it.
-* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variable `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
+* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variables `DESTDIR` and `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
 * `setCOQBIN` (optional, defaults to `true`), by default, the environment variable `$COQBIN` is set to the current Coq's binary, but one can disable this behavior by setting it to `false`,
 * `useMelquiondRemake` (optional, default to `null`) is an attribute set, which, if given, overloads the `preConfigurePhases`, `configureFlags`, `buildPhase`, and `installPhase` attributes of the derivation for a specific use in libraries using `remake` as set up by Guillaume Melquiond for `flocq`, `gappalib`, `interval`, and `coquelicot` (see the corresponding derivation for concrete examples of use of this option). For backward compatibility, the attribute `useMelquiondRemake.logpath` must be set to the logical root of the library (otherwise, one can pass `useMelquiondRemake = {}` to activate this without backward compatibility).
 * `dropAttrs`, `keepAttrs`, `dropDerivationAttrs` are all optional and allow to tune which attribute is added or removed from the final call to `mkDerivation`.
diff --git a/lib/strings.nix b/lib/strings.nix
index 328f64cf1b61d..295d98900e994 100644
--- a/lib/strings.nix
+++ b/lib/strings.nix
@@ -339,9 +339,10 @@ rec {
 
   /* Translate a Nix value into a shell variable declaration, with proper escaping.
 
-     Supported value types are strings (mapped to regular variables), lists of strings
-     (mapped to Bash-style arrays) and attribute sets of strings (mapped to Bash-style
-     associative arrays). Note that "strings" include string-coercible values like paths.
+     The value can be a string (mapped to a regular variable), a list of strings
+     (mapped to a Bash-style array) or an attribute set of strings (mapped to a
+     Bash-style associative array). Note that "string" includes string-coercible
+     values like paths or derivations.
 
      Strings are translated into POSIX sh-compatible code; lists and attribute sets
      assume a shell that understands Bash syntax (e.g. Bash or ZSH).
@@ -356,7 +357,7 @@ rec {
   */
   toShellVar = name: value:
     lib.throwIfNot (isValidPosixName name) "toShellVar: ${name} is not a valid shell variable name" (
-    if isAttrs value then
+    if isAttrs value && ! isCoercibleToString value then
       "declare -A ${name}=(${
         concatStringsSep " " (lib.mapAttrsToList (n: v:
           "[${escapeShellArg n}]=${escapeShellArg v}"
diff --git a/lib/tests/misc.nix b/lib/tests/misc.nix
index faa7ee547f57a..c7010f41394a0 100644
--- a/lib/tests/misc.nix
+++ b/lib/tests/misc.nix
@@ -269,6 +269,15 @@ runTests {
           strings
           possibly newlines
         '';
+        drv = {
+          outPath = "/drv";
+          foo = "ignored attribute";
+        };
+        path = /path;
+        stringable = {
+          __toString = _: "hello toString";
+          bar = "ignored attribute";
+        };
       }}
     '';
     expected = ''
@@ -277,6 +286,9 @@ runTests {
       declare -A assoc=(['with some']='strings
       possibly newlines
       ')
+      drv='/drv'
+      path='/path'
+      stringable='hello toString'
     '';
   };
 
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 7b01e10bf9af3..4f7e4f73c4311 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -9572,8 +9572,8 @@
     githubId = 14816024;
     name = "oxalica";
     keys = [{
-      longkeyid = "rsa4096/0xCED392DE0C483D00";
-      fingerprint = "5CB0 E9E5 D5D5 71F5 7F54  0FEA CED3 92DE 0C48 3D00";
+      longkeyid = "ed25519/0x7571654CF88E31C2";
+      fingerprint = "F90F FD6D 585C 2BA1 F13D  E8A9 7571 654C F88E 31C2";
     }];
   };
   oxij = {
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 36d3f4976dbe3..6a24555de74a7 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -2299,6 +2299,14 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>phpPackages.box</literal> package has been
+          updated from 2.7.5 to 3.16.0. See the
+          <link xlink:href="https://github.com/box-project/box/blob/master/UPGRADE.md#from-27-to-30">upgrade
+          guide</link> for more details.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>zrepl</literal> package has been updated from
           0.4.0 to 0.5:
         </para>
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 7926f6b966719..2149427d9d02d 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -827,6 +827,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - The `vscode-extensions.ionide.ionide-fsharp` package has been updated to 6.0.0 and now requires .NET 6.0.
 
+- The `phpPackages.box` package has been updated from 2.7.5 to 3.16.0. See the [upgrade guide](https://github.com/box-project/box/blob/master/UPGRADE.md#from-27-to-30) for more details.
+
 - The `zrepl` package has been updated from 0.4.0 to 0.5:
 
   - The RPC protocol version was bumped; all zrepl daemons in a setup must be updated and restarted before replication can resume.
diff --git a/nixos/modules/services/backup/automysqlbackup.nix b/nixos/modules/services/backup/automysqlbackup.nix
index fd2764a40ad2f..cf0cb4da32cf1 100644
--- a/nixos/modules/services/backup/automysqlbackup.nix
+++ b/nixos/modules/services/backup/automysqlbackup.nix
@@ -112,7 +112,7 @@ in
 
     services.mysql.ensureUsers = optional (config.services.mysql.enable && cfg.config.mysql_dump_host == "localhost") {
       name = user;
-      ensurePermissions = { "*.*" = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES"; };
+      ensurePermissions = { "*.*" = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, EVENT"; };
     };
 
   };
diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
index 7c481c6d977e9..39835c58b6501 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
@@ -217,6 +217,12 @@ let
         flycheck-rtags = fix-rtags super.flycheck-rtags;
 
         pdf-tools = super.pdf-tools.overrideAttrs (old: {
+          # Temporary work around for:
+          #   - https://github.com/vedang/pdf-tools/issues/102
+          #   - https://github.com/vedang/pdf-tools/issues/103
+          #   - https://github.com/vedang/pdf-tools/issues/109
+          CXXFLAGS = "-std=c++17";
+
           nativeBuildInputs = [
             pkgs.autoconf
             pkgs.automake
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index d01b240e3470c..d491bb7f8050c 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -1384,6 +1384,18 @@ final: prev:
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
+  coconut-vim = buildVimPluginFrom2Nix {
+    pname = "coconut.vim";
+    version = "2017-10-10";
+    src = fetchFromGitHub {
+      owner = "manicmaniac";
+      repo = "coconut.vim";
+      rev = "cea47739aab9f163d240d1609e7eea326fd55072";
+      sha256 = "03rq3lpplgywvm620jzx085l74180163q8gls4gjrad2fgm9n96n";
+    };
+    meta.homepage = "https://github.com/manicmaniac/coconut.vim/";
+  };
+
   codi-vim = buildVimPluginFrom2Nix {
     pname = "codi.vim";
     version = "2022-04-30";
@@ -2566,6 +2578,18 @@ final: prev:
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
+  fzf-lua = buildVimPluginFrom2Nix {
+    pname = "fzf-lua";
+    version = "2022-05-07";
+    src = fetchFromGitHub {
+      owner = "ibhagwan";
+      repo = "fzf-lua";
+      rev = "b614a9d315512ec4ce9c1df41474e5ab8e12f7df";
+      sha256 = "0gb7q4fbv3754ck44h6dd93dcy8j4czhhna1d2kgq21614xs303k";
+    };
+    meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
+  };
+
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf.vim";
     version = "2022-04-07";
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index bbdd19f22f129..3273d841c6579 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -293,6 +293,10 @@ self: super: {
     '';
   });
 
+  fzf-lua = super.fzf-lua.overrideAttrs (old: {
+    propagatedBuildInputs = [ fzf ];
+  });
+
   fzf-vim = super.fzf-vim.overrideAttrs (old: {
     dependencies = with self; [ fzfWrapper ];
   });
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index 1a307c8c7c7f9..6369d0ca7c42b 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -116,6 +116,7 @@ https://github.com/iamcco/coc-spell-checker/,,
 https://github.com/coc-extensions/coc-svelte/,,
 https://github.com/iamcco/coc-tailwindcss/,,
 https://github.com/neoclide/coc.nvim/,release,
+https://github.com/manicmaniac/coconut.vim/,HEAD,
 https://github.com/metakirby5/codi.vim/,,
 https://github.com/tjdevries/colorbuddy.nvim/,,
 https://github.com/lilydjwg/colorizer/,,
@@ -214,6 +215,7 @@ https://github.com/BeneCollyridam/futhark-vim/,,
 https://github.com/rktjmp/fwatch.nvim/,,
 https://github.com/stsewd/fzf-checkout.vim/,,
 https://github.com/gfanto/fzf-lsp.nvim/,,
+https://github.com/ibhagwan/fzf-lua/,HEAD,
 https://github.com/junegunn/fzf.vim/,,
 https://github.com/NTBBloodbath/galaxyline.nvim/,,
 https://github.com/jsfaint/gen_tags.vim/,,
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index ffd4103e214e2..080d7b0c9fb07 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -12,12 +12,12 @@ let
     if extension == "zip" then fetchzip args else fetchurl args;
 
   pname = "1password-cli";
-  version = "2.1.0";
+  version = "2.2.0";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-DTYWqhawyAQBIxMUksZheyN8WSVPyhCghZC8orxKsBk=" "zip";
-    i686-linux = fetch "linux_386" "sha256-JBjiKxbJnFILSOVnOUIcY3GpbOT2UOJlasTSPRyYz4I=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-PfVOvUF8Rls29VzfIj1U6/VFv1H6lj2K3Dz6DWmh2fs=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-Cn3/+Dvk5hW9rvxu4I9ghHSS1yWSAeQq3gx+6dvFiIk=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-fKW2qSQkkC4GcnHcLLszX1pcqK67SaofVX017/cIkD0=" "zip";
+    i686-linux = fetch "linux_386" "sha256-TmQ3nWG12DTpAJaxbK+hnJak0RrFhhw6rJWfV7q8wb4=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-66kFScxPmy4WgK9p1W6qBoAeYJwungHgGkTurjEJy+4=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-DD1j093SjnaPtkQ4XuU1zkRi6XPXtwnBxiqC6wZbV+w=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index c5a0bc0fb85a2..439067187c2d2 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -73,6 +73,7 @@
       productTargetPath = "product/community/target/products/org.jkiss.dbeaver.core.product";
 
       platformMap = {
+        aarch64-darwin = "aarch64";
         aarch64-linux = "aarch64";
         x86_64-darwin = "x86_64";
         x86_64-linux  = "x86_64";
@@ -127,7 +128,7 @@
       Teradata, Firebird, Derby, etc.
     '';
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     maintainers = with maintainers; [ jojosch mkg20001 ];
   };
 }
diff --git a/pkgs/applications/misc/joshuto/default.nix b/pkgs/applications/misc/joshuto/default.nix
index 32018d7151dbd..024334aca5061 100644
--- a/pkgs/applications/misc/joshuto/default.nix
+++ b/pkgs/applications/misc/joshuto/default.nix
@@ -1,4 +1,4 @@
-{ lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration }:
+{ lib, rustPlatform, fetchFromGitHub, stdenv, SystemConfiguration, Foundation }:
 
 rustPlatform.buildRustPackage rec {
   pname = "joshuto";
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "sha256-vhTfAoAwDJ9BjhgUEkV2H+KAetJR1YqwaZ7suF6yMXA=";
 
-  buildInputs = lib.optional stdenv.isDarwin SystemConfiguration;
+  buildInputs = lib.optionals stdenv.isDarwin [ SystemConfiguration Foundation ];
 
   meta = with lib; {
     description = "Ranger-like terminal file manager written in Rust";
diff --git a/pkgs/applications/misc/twitch-chat-downloader/default.nix b/pkgs/applications/misc/twitch-chat-downloader/default.nix
index a8ffb46c1f88a..779b9ddba63bf 100644
--- a/pkgs/applications/misc/twitch-chat-downloader/default.nix
+++ b/pkgs/applications/misc/twitch-chat-downloader/default.nix
@@ -9,16 +9,22 @@
 
 buildPythonApplication rec {
   pname = "twitch-chat-downloader";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchPypi {
     inherit version;
     pname = "tcd";
-    sha256 = "f9b5ea2ad3badb7deffdd9604368ccb54170cd7929efbaa2d7b534e089ae6338";
+    sha256 = "ee6a8e22c54ccfd29988554b13fe56b2a1bf524e110fa421d77e27baa8dcaa19";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace "'pipenv>=2020.5.28'," ""
+    substituteInPlace setup.py \
+      --replace "'pipenv==2022.4.30'," "" \
+      --replace "setuptools==62.1." "setuptools" \
+      --replace "requests==2.27.1" "requests" \
+      --replace "twitch-python==0.0.20" "twitch-python" \
+      --replace "pytz==2022.1" "pytz" \
+      --replace "python-dateutil==2.8.2" "python-dateutil"
   '';
 
   propagatedBuildInputs = [ requests twitch-python pytz python-dateutil ];
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 79b9b498fbd76..a0f15253d6a50 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -90,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.38.111";
+  version = "1.38.115";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "sha256-sUTQktCQOVyXbw58u9ilFZaKg6D24Okpa+rUIO56ors=";
+    sha256 = "sha256-YQpFsB3VVzsOa7PoZ+TLv10Dzm9z819cmyw7atnG/Cs=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index f73f171b750c1..8f2bdf61e5696 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -45,9 +45,9 @@
     }
   },
   "ungoogled-chromium": {
-    "version": "101.0.4951.54",
-    "sha256": "1d808a7mvg0nd0mm20c1ny5kdvb2xvrs8vz4nnk456ix8pywcv62",
-    "sha256bin64": "1m6s6xf2wvz535w6jskk3pnibvsjpzmbxvd9rlxmqr08y219gp5y",
+    "version": "101.0.4951.64",
+    "sha256": "1xyqm32y9v1hn8ji6qfw6maynqgg3266j58dq4x4aqsm2gj9cn4w",
+    "sha256bin64": "14ijrj7h2y72ppyysz6jv40c01lbnan7z69cl24asch2zjlgwv8v",
     "deps": {
       "gn": {
         "version": "2022-03-14",
@@ -56,8 +56,8 @@
         "sha256": "0nql15ckjqkm001xajq3qyn4h4q80i7x6dm9zinxxr1a8q5lppx3"
       },
       "ungoogled-patches": {
-        "rev": "101.0.4951.54-1",
-        "sha256": "0zhzy7llqddvym992pwhkgqh2f6ywjqqg0bhahl6c0np95gzhpbs"
+        "rev": "101.0.4951.64-1",
+        "sha256": "0k7w6xvjf1yzyak9ywvcdw762d8zbx6d8haz35q87jz0mxfn2mr3"
       }
     }
   }
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index a244a2ab2a703..46a64d1b533ca 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "lib/electron-main.js",
-  "version": "1.10.11",
+  "version": "1.10.12",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
@@ -81,11 +81,11 @@
     "rimraf": "^3.0.2",
     "tar": "^6.1.2",
     "ts-node": "^10.4.0",
-    "typescript": "^4.5.3"
+    "typescript": "4.5.5"
   },
   "hakDependencies": {
-    "matrix-seshat": "^2.3.0",
-    "keytar": "^5.6.0"
+    "matrix-seshat": "^2.3.3",
+    "keytar": "^7.9.0"
   },
   "build": {
     "appId": "im.riot.app",
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
index 70b5f7f65efa8..77058ce04c318 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,6 +1,6 @@
 {
-  "version": "1.10.11",
-  "desktopSrcHash": "n74KFmHI6ZQWBEJCR55VZHS//myh2RePcJRVOmZ6XHo=",
-  "desktopYarnHash": "0jm0i1yyfkg1ll11pb3qif1vdxx6rp0yl9kd8jg9nhsg2jzw66pr",
-  "webHash": "02m64bhg1ls4a5igmizkkxnqfmbfhs0xy24ycr75vxmn0zmwa3yd"
+  "version": "1.10.12",
+  "desktopSrcHash": "K1p/+dZRtKb+AiU2EcikAsmiTIKPw0zaVzAfUDzsYZY=",
+  "desktopYarnHash": "09ri87ynfgxrv22sykggiy6nlcf20qwj7zj9qq0rz3c2acr6g9mn",
+  "webHash": "1m7pvliymyggg6qx8gj6l3j2f4rml0km1vmk1zdspxa4l6p0qxd8"
 }
diff --git a/pkgs/applications/networking/misc/zammad/default.nix b/pkgs/applications/networking/misc/zammad/default.nix
index ca5e2222c8e17..b7d5dbae760a1 100644
--- a/pkgs/applications/networking/misc/zammad/default.nix
+++ b/pkgs/applications/networking/misc/zammad/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "zammad";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = applyPatches {
 
diff --git a/pkgs/applications/networking/misc/zammad/gemset.nix b/pkgs/applications/networking/misc/zammad/gemset.nix
index 2f9e77d425317..ceb3ef12958b3 100644
--- a/pkgs/applications/networking/misc/zammad/gemset.nix
+++ b/pkgs/applications/networking/misc/zammad/gemset.nix
@@ -664,10 +664,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04vxmjr200akcil9fqxc9ghbb9q0lyrh2q03xxncycd5vln910fi";
+      sha256 = "1pfk942d6qwhw151hxaz7n4knk6whyxqvvywdx2cdw9yhykyaqzq";
       type = "gem";
     };
-    version = "6.2.0";
+    version = "6.2.1";
   };
   factory_bot_rails = {
     dependencies = ["factory_bot" "railties"];
@@ -1452,10 +1452,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
+      sha256 = "1g43ii497cwdqhfnaxfl500bq5yfc5hfv5df1lvf6wcjnd708ihd";
       type = "gem";
     };
-    version = "1.13.3";
+    version = "1.13.4";
   };
   nori = {
     groups = ["default"];
@@ -1700,10 +1700,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19mf9f5zx23cjjn0p77wz1igzpfr22mxhljgavffl8fwqq74v4ih";
+      sha256 = "01ldw5ba6xfn2k97n75n52qs4f0fy8xmn58c4247xf476nfvg035";
       type = "gem";
     };
-    version = "3.2.5";
+    version = "3.2.6";
   };
   power_assert = {
     groups = ["default" "development" "test"];
@@ -1786,10 +1786,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xvkz9xrd1cqnlm0qac1iwwxzndx3cc17zrjncpa4lzjfwbxhsnm";
+      sha256 = "0df9bknc2dllk8v9fhgidzbvbryaxa8fgifrk40cdz9csjsphbky";
       type = "gem";
     };
-    version = "4.3.11";
+    version = "4.3.12";
   };
   pundit = {
     dependencies = ["activesupport"];
@@ -1833,6 +1833,17 @@
     };
     version = "2.2.3";
   };
+  rack-attack = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rc6simyql7ax5zzp667x6krl0xxxh3asc1av6gcn8j6cyl86wsx";
+      type = "gem";
+    };
+    version = "6.6.0";
+  };
   rack-livereload = {
     dependencies = ["rack"];
     groups = ["development" "test"];
@@ -2273,10 +2284,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "134zg0dzd7216lyczkhv01v27ikkmipjihcy2bzi0qv72p1i923i";
+      sha256 = "1wybcipkfawg4pragmayiig03xc084x3hbwywsh1dr9x9pa8f9hj";
       type = "gem";
     };
-    version = "1.1.5";
+    version = "1.1.6";
   };
   slack-notifier = {
     groups = ["default"];
diff --git a/pkgs/applications/networking/misc/zammad/package.json b/pkgs/applications/networking/misc/zammad/package.json
index 00c22263200bd..28fd3fdf11263 100644
--- a/pkgs/applications/networking/misc/zammad/package.json
+++ b/pkgs/applications/networking/misc/zammad/package.json
@@ -14,5 +14,5 @@
     "stylelint-prettier": "^2.0.0"
   },
   "name": "Zammad",
-  "version": "5.1.0"
+  "version": "5.1.1"
 }
diff --git a/pkgs/applications/networking/misc/zammad/source.json b/pkgs/applications/networking/misc/zammad/source.json
index 76e1321433f14..03e8e1103b1a3 100644
--- a/pkgs/applications/networking/misc/zammad/source.json
+++ b/pkgs/applications/networking/misc/zammad/source.json
@@ -1,7 +1,8 @@
 {
   "owner": "zammad",
   "repo": "zammad",
-  "rev": "eefae45c2ad6e6a96b8df631d2f50f290ecbd27d",
-  "sha256": "EjowvM//+UsAfEH9/0jgLkiD7EWH34M1NQ9U2DotBqc=",
+  "rev": "d71bd90ef964426230664cdfbaa2572325bfed4f",
+  "sha256": "yzDTkjnRBl71REtSKRblkanJWhj7gp/+exhWjxGCFWw=",
   "fetchSubmodules": true
 }
+
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index c1744389e98f0..74a4c156b8307 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -1,29 +1,125 @@
-{ stdenv, fetchurl, lib, pam, python3, libxslt, perl, ArchiveZip, box2d, gettext
-, IOCompress, zlib, libjpeg, expat, freetype, libwpd
-, libxml2, db, curl, fontconfig, libsndfile, neon
-, bison, flex, zip, unzip, gtk3, libmspack, getopt, file, cairo, which
-, icu, boost, jdk, ant, cups, xorg, fontforge, jre_minimal
-, openssl, gperf, cppunit, poppler, util-linux
-, librsvg, libGLU, libGL, bsh, CoinMP, libwps, libabw, libmysqlclient
-, autoconf, automake, openldap, bash, hunspell, librdf_redland, nss, nspr
-, libwpg, dbus-glib, clucene_core, libcdr, lcms
-, unixODBC, mdds, sane-backends, mythes, libexttextcat, libvisio
-, fontsConf, pkg-config, bluez5, libtool, carlito
-, libatomic_ops, graphite2, harfbuzz, libodfgen, libzmf
-, librevenge, libe-book, libmwaw, glm, gst_all_1
-, gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
-, gnome, glib, ncurses, libepoxy, gpgme, abseil-cpp
+{ stdenv
+, fetchurl
+, lib
+, pam
+, python3
+, libxslt
+, perl
+, ArchiveZip
+, box2d
+, gettext
+, IOCompress
+, zlib
+, libjpeg
+, expat
+, freetype
+, libwpd
+, libxml2
+, db
+, curl
+, fontconfig
+, libsndfile
+, neon
+, bison
+, flex
+, zip
+, unzip
+, gtk3
+, libmspack
+, getopt
+, file
+, cairo
+, which
+, icu
+, boost
+, jdk
+, ant
+, cups
+, xorg
+, fontforge
+, jre_minimal
+, openssl
+, gperf
+, cppunit
+, poppler
+, util-linux
+, librsvg
+, libGLU
+, libGL
+, bsh
+, CoinMP
+, libwps
+, libabw
+, libmysqlclient
+, autoconf
+, automake
+, openldap
+, bash
+, hunspell
+, librdf_redland
+, nss
+, nspr
+, libwpg
+, dbus-glib
+, clucene_core
+, libcdr
+, lcms
+, unixODBC
+, mdds
+, sane-backends
+, mythes
+, libexttextcat
+, libvisio
+, fontsConf
+, pkg-config
+, bluez5
+, libtool
+, carlito
+, libatomic_ops
+, graphite2
+, harfbuzz
+, libodfgen
+, libzmf
+, librevenge
+, libe-book
+, libmwaw
+, glm
+, gst_all_1
+, gdb
+, commonsLogging
+, librdf_rasqal
+, wrapGAppsHook
+, gnome
+, glib
+, ncurses
+, libepoxy
+, gpgme
+, abseil-cpp
 , langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "uk" "zh-CN" ]
 , withHelp ? true
-, kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
-, ki18n ? null, kconfig ? null, kcoreaddons ? null, kio ? null, kwindowsystem ? null
+, kdeIntegration ? false
+, mkDerivation ? null
+, qtbase ? null
+, qtx11extras ? null
+, ki18n ? null
+, kconfig ? null
+, kcoreaddons ? null
+, kio ? null
+, kwindowsystem ? null
 , wrapQtAppsHook ? null
 , variant ? "fresh"
+, symlinkJoin
 } @ args:
 
 assert builtins.elem variant [ "fresh" "still" ];
 
 let
+  inherit (lib)
+    flatten flip
+    concatMapStrings concatMapStringsSep concatStringsSep
+    getDev getLib
+    optional optionals optionalString;
+
   jre' = jre_minimal.override {
     modules = [ "java.base" "java.desktop" "java.logging" ];
   };
@@ -34,27 +130,43 @@ let
 
   inherit (primary-src) major minor subdir version;
 
-  langsSpaces = lib.concatStringsSep " " langs;
+  langsSpaces = concatStringsSep " " langs;
 
   mkDrv = if kdeIntegration then mkDerivation else stdenv.mkDerivation;
 
   srcs = {
     third_party =
-      map (x : ((fetchurl {inherit (x) url sha256 name;}) // {inherit (x) md5name md5;}))
-      (importVariant "download.nix" ++ [
-        (rec {
-          name = "unowinreg.dll";
-          url = "https://dev-www.libreoffice.org/extern/${md5name}";
-          sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
-          md5 = "185d60944ea767075d27247c3162b3bc";
-          md5name = "${md5}-${name}";
-        })
-      ]);
+      map (x: ((fetchurl { inherit (x) url sha256 name; }) // { inherit (x) md5name md5; }))
+        (importVariant "download.nix" ++ [
+          (rec {
+            name = "unowinreg.dll";
+            url = "https://dev-www.libreoffice.org/extern/${md5name}";
+            sha256 = "1infwvv1p6i21scywrldsxs22f62x85mns4iq8h6vr6vlx3fdzga";
+            md5 = "185d60944ea767075d27247c3162b3bc";
+            md5name = "${md5}-${name}";
+          })
+        ]);
 
     translations = primary-src.translations;
     help = primary-src.help;
   };
-in (mkDrv rec {
+
+  # See `postPatch` for details
+  kdeDeps = symlinkJoin {
+    name = "libreoffice-kde-dependencies-${version}";
+    paths = flatten (map (e: [ (getDev e) (getLib e) ]) [
+      qtbase
+      qtx11extras
+      kconfig
+      kcoreaddons
+      ki18n
+      kio
+      kwindowsystem
+    ]);
+  };
+
+in
+(mkDrv rec {
   pname = "libreoffice";
   inherit version;
 
@@ -71,10 +183,10 @@ in (mkDrv rec {
 
   postUnpack = ''
     mkdir -v $sourceRoot/${tarballPath}
-  '' + (lib.flip lib.concatMapStrings srcs.third_party (f: ''
-      ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name}
-      ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name}
-    ''))
+  '' + (flip concatMapStrings srcs.third_party (f: ''
+    ln -sfv ${f} $sourceRoot/${tarballPath}/${f.md5name}
+    ln -sfv ${f} $sourceRoot/${tarballPath}/${f.name}
+  ''))
   + ''
     ln -sv ${srcs.help} $sourceRoot/${tarballPath}/${srcs.help.name}
     ln -svf ${srcs.translations} $sourceRoot/${tarballPath}/${srcs.translations.name}
@@ -97,16 +209,20 @@ in (mkDrv rec {
 
   ### QT/KDE
   #
-  # We have to resort to the ugly patching of configure.ac as it assumes that
-  # the first directory that contains headers and libraries during the check
-  # contains all the relevant headers/libs which doesn't work with both as they
-  # are in multiple directories due to each having their own derivation.
-  postPatch = let
-    inc = e: path:
-      "${lib.getDev e}/include/KF5/${path}";
-    libs = list:
-      lib.concatMapStringsSep " " (e: "-L${lib.getLib e}/lib") list;
-  in ''
+  # configure.ac assumes that the first directory that contains headers and
+  # libraries during its checks contains *all* the relevant headers/libs which
+  # obviously doesn't work for us, so we have 2 options:
+  #
+  # 1. patch configure.ac in order to specify the direct paths to various Qt/KDE
+  # dependencies which is ugly and brittle, or
+  #
+  # 2. use symlinkJoin to pull in the relevant dependencies and just patch in
+  # that path which is *also* ugly, but far less likely to break
+  #
+  # The 2nd option is not very Nix'y, but I'll take robust over nice any day.
+  # Additionally, it's much easier to fix if LO breaks on the next upgrade (just
+  # add the missing dependencies to it).
+  postPatch = ''
     substituteInPlace shell/source/unix/exec/shellexec.cxx \
       --replace /usr/bin/xdg-open ${if kdeIntegration then "kde-open5" else "xdg-open"}
 
@@ -119,21 +235,12 @@ in (mkDrv rec {
     substituteInPlace configure.ac --replace \
       'GPGMEPP_CFLAGS=-I/usr/include/gpgme++' \
       'GPGMEPP_CFLAGS=-I${gpgme.dev}/include/gpgme++'
-  '' + lib.optionalString kdeIntegration ''
-      substituteInPlace configure.ac \
-        --replace kcoreaddons_version.h KCoreAddons/kcoreaddons_version.h \
-        --replace '$QT5INC'             ${qtbase.dev}/include \
-        --replace '$QT5LIB'             ${qtbase.out}/lib \
-        --replace '-I$qt5_incdir '      '-I${qtx11extras.dev}/include '\
-        --replace '-L$qt5_libdir '      '${libs [ qtbase qtx11extras ]} ' \
-        --replace '$KF5INC'             ${kcoreaddons.dev}/include \
-        --replace '$KF5LIB'             ${kcoreaddons.out}/lib \
-        --replace '$kf5_incdir/KCore'   ${inc kcoreaddons "KCore"} \
-        --replace '$kf5_incdir/KI18n'   ${inc ki18n "KI18n"} \
-        --replace '$kf5_incdir/KConfig' ${inc kconfig "KConfig"} \
-        --replace '$kf5_incdir/KWindow' ${inc kwindowsystem "KWindow"} \
-        --replace '$kf5_incdir/KIO'     ${inc kio "KIO"} \
-        --replace '-L$kf5_libdir '      '${libs [ kconfig kcoreaddons ki18n kio kwindowsystem ]} '
+  '' + optionalString kdeIntegration ''
+    substituteInPlace configure.ac \
+      --replace '$QT5INC ' '$QT5INC ${kdeDeps}/include ' \
+      --replace '$QT5LIB ' '$QT5LIB ${kdeDeps}/lib ' \
+      --replace '$KF5INC ' '$KF5INC ${kdeDeps}/include ${kdeDeps}/include/KF5 '\
+      --replace '$KF5LIB ' '$KF5LIB ${kdeDeps}/lib '
   '';
 
   dontUseCmakeConfigure = true;
@@ -239,18 +346,16 @@ in (mkDrv rec {
     ''
     # This to avoid using /lib:/usr/lib at linking
     + ''
-    sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
+      sed -i '/gb_LinkTarget_LDFLAGS/{ n; /rpath-link/d;}' solenv/gbuild/platform/unxgcc.mk
 
-    find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
+      find -name "*.cmd" -exec sed -i s,/lib:/usr/lib,, {} \;
     '';
 
   makeFlags = [ "SHELL=${bash}/bin/bash" ];
 
   enableParallelBuilding = true;
 
-  buildPhase = ''
-    make build-nocheck
-  '';
+  buildTargets = [ "build-nocheck" ];
 
   doCheck = true;
 
@@ -278,19 +383,18 @@ in (mkDrv rec {
 
     mkdir -p $dev
     cp -r include $dev
-  '' + lib.optionalString kdeIntegration ''
-      for prog in $out/bin/*
-      do
-        wrapQtApp $prog
-      done
+  '' + optionalString kdeIntegration ''
+    for prog in $out/bin/*; do
+      wrapQtApp $prog
+    done
   '';
 
   dontWrapQtApps = true;
 
   configureFlags = [
     (if withHelp then "" else "--without-help")
-    "--with-boost=${boost.dev}"
-    "--with-boost-libdir=${boost.out}/lib"
+    "--with-boost=${getDev boost}"
+    "--with-boost-libdir=${getLib boost}/lib"
     "--with-beanshell-jar=${bsh}"
     "--with-vendor=NixOS"
     "--disable-report-builder"
@@ -299,7 +403,7 @@ in (mkDrv rec {
     "--enable-dbus"
     "--enable-release-build"
     "--enable-epm"
-    "--with-ant-home=${ant}/lib/ant"
+    "--with-ant-home=${getLib ant}/lib/ant"
     "--with-system-cairo"
     "--with-system-libs"
     "--with-system-headers"
@@ -347,44 +451,128 @@ in (mkDrv rec {
     # https://github.com/NixOS/nixpkgs/commit/5c5362427a3fa9aefccfca9e531492a8735d4e6f
     "--without-system-orcus"
     "--without-system-xmlsec"
-  ] ++ lib.optionals kdeIntegration [
+  ] ++ optionals kdeIntegration [
     "--enable-kf5"
     "--enable-qt5"
     "--enable-gtk3-kde5"
   ];
 
-  checkPhase = ''
-    make unitcheck
-    make slowcheck
-  '';
+  checkTarget = concatStringsSep " " [
+    "unitcheck"
+    "slowcheck"
+  ];
 
   nativeBuildInputs = [
-    gdb fontforge autoconf automake bison pkg-config libtool jdk
-  ] ++ lib.optional (!kdeIntegration) wrapGAppsHook
-    ++ lib.optional kdeIntegration wrapQtAppsHook;
-
-  buildInputs = with xorg;
-    [ ant ArchiveZip boost box2d cairo clucene_core
-      IOCompress cppunit cups curl db dbus-glib expat file flex fontconfig
-      freetype getopt gperf gtk3
-      hunspell icu jre' lcms libcdr libexttextcat unixODBC libjpeg
-      libmspack librdf_redland librsvg libsndfile libvisio libwpd libwpg libX11
-      libXaw libXext libXi libXinerama libxml2 libxslt libXtst
-      libXdmcp libpthreadstubs libGLU libGL mythes
-      glib libmysqlclient
-      neon nspr nss openldap openssl pam perl pkg-config poppler
-      python3 sane-backends unzip which zip zlib
-      mdds bluez5 libwps libabw libzmf
-      libxshmfence libatomic_ops graphite2 harfbuzz gpgme util-linux
-      librevenge libe-book libmwaw glm ncurses libepoxy
-      libodfgen CoinMP librdf_rasqal gnome.adwaita-icon-theme gettext abseil-cpp
-    ]
-    ++ (with gst_all_1; [
-      gstreamer
-      gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
-      gst-libav
-    ])
-    ++ lib.optional kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
+    autoconf
+    automake
+    bison
+    fontforge
+    gdb
+    jdk
+    libtool
+    pkg-config
+  ]
+  ++ [ (if kdeIntegration then wrapQtAppsHook else wrapGAppsHook) ];
+
+  buildInputs = with xorg; [
+    ArchiveZip
+    CoinMP
+    IOCompress
+    abseil-cpp
+    ant
+    bluez5
+    boost
+    box2d
+    cairo
+    clucene_core
+    cppunit
+    cups
+    curl
+    db
+    dbus-glib
+    expat
+    file
+    flex
+    fontconfig
+    freetype
+    getopt
+    gettext
+    glib
+    glm
+    gnome.adwaita-icon-theme
+    gperf
+    gpgme
+    graphite2
+    gtk3
+    harfbuzz
+    hunspell
+    icu
+    jre'
+    lcms
+    libGL
+    libGLU
+    libX11
+    libXaw
+    libXdmcp
+    libXext
+    libXi
+    libXinerama
+    libXtst
+    libabw
+    libatomic_ops
+    libcdr
+    libe-book
+    libepoxy
+    libexttextcat
+    libjpeg
+    libmspack
+    libmwaw
+    libmysqlclient
+    libodfgen
+    libpthreadstubs
+    librdf_rasqal
+    librdf_redland
+    librevenge
+    librsvg
+    libsndfile
+    libvisio
+    libwpd
+    libwpg
+    libwps
+    libxml2
+    libxshmfence
+    libxslt
+    libzmf
+    mdds
+    mythes
+    ncurses
+    neon
+    nspr
+    nss
+    openldap
+    openssl
+    pam
+    perl
+    pkg-config
+    poppler
+    python3
+    sane-backends
+    unixODBC
+    unzip
+    util-linux
+    which
+    zip
+    zlib
+  ]
+  ++ (with gst_all_1; [
+    gst-libav
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gstreamer
+  ])
+  ++ optionals kdeIntegration [ qtbase qtx11extras kcoreaddons kio ];
 
   passthru = {
     inherit srcs;
diff --git a/pkgs/applications/science/electronics/vhd2vl/default.nix b/pkgs/applications/science/electronics/vhd2vl/default.nix
index f0dd990a35bc8..089ebb9bb1988 100644
--- a/pkgs/applications/science/electronics/vhd2vl/default.nix
+++ b/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , bison
 , flex
 , verilog
@@ -19,12 +18,8 @@ stdenv.mkDerivation rec {
   };
 
   patches = lib.optionals (!stdenv.isAarch64) [
-    # fix build with verilog 11.0 - https://github.com/ldoolitt/vhd2vl/pull/15
-    # for some strange reason, this is not needed for aarch64
-    (fetchpatch {
-      url = "https://github.com/ldoolitt/vhd2vl/commit/ce9b8343ffd004dfe8779a309f4b5a594dbec45e.patch";
-      sha256 = "1qaqhm2mk66spb2dir9n91b385rarglc067js1g6pcg8mg5v3hhf";
-    })
+    # fix build with verilog 11.0
+    ./test.patch
   ];
 
   nativeBuildInputs = [
@@ -37,6 +32,13 @@ stdenv.mkDerivation rec {
     verilog
   ];
 
+  # the "translate" target both (a) builds the software and (b) runs
+  # the tests (without validating the results)
+  buildTargets = [ "translate" ];
+
+  # the "diff" target examines the test results
+  checkTarget = "diff";
+
   installPhase = ''
     runHook preInstall
     install -D -m755 src/vhd2vl $out/bin/vdh2vl
diff --git a/pkgs/applications/science/electronics/vhd2vl/test.patch b/pkgs/applications/science/electronics/vhd2vl/test.patch
new file mode 100644
index 0000000000000..85b91964e3922
--- /dev/null
+++ b/pkgs/applications/science/electronics/vhd2vl/test.patch
@@ -0,0 +1,35 @@
+--- a/translated_examples/fifo.v  1970-01-01 00:00:01.000000000 +0000
++++ a/temp/verilog/fifo.v 2022-05-11 03:44:43.173604945 +0000
+@@ -107,7 +107,7 @@
+   //--- Read address counter --------------
+   //---------------------------------------
+   assign add_RD_CE = (iempty == 1'b1) ? 1'b0 : (RD == 1'b0) ? 1'b0 : 1'b1;
+-  assign n_add_RD = (add_RD) + 4'h1;
++  assign n_add_RD = add_RD + 4'h1;
+   always @(posedge clk_RD, posedge rst) begin
+     if((rst == 1'b1)) begin
+       add_RD <= {5{1'b0}};
+diff -u '--exclude=Makefile' '--exclude-from=examples/exclude' translated_examples/test.v temp/verilog/test.v
+--- a/translated_examples/test.v  1970-01-01 00:00:01.000000000 +0000
++++ a/temp/verilog/test.v 2022-05-11 03:44:43.189604945 +0000
+@@ -125,7 +125,7 @@
+     endcase
+   end
+
+-  assign code1[1:0] = a[6:5] ^ ({a[4],b[6]});
++  assign code1[1:0] = a[6:5] ^ {a[4],b[6]};
+   // Asynch process
+   always @(we, addr, config1, bip) begin
+     if(we == 1'b1) begin
+diff -u '--exclude=Makefile' '--exclude-from=examples/exclude' translated_examples/withselect.v temp/verilog/withselect.v
+--- a/translated_examples/withselect.v    1970-01-01 00:00:01.000000000 +0000
++++ a/temp/verilog/withselect.v   2022-05-11 03:44:43.193604945 +0000
+@@ -33,7 +33,7 @@
+     endcase
+   end
+
+-  assign code1[1:0] = a[6:5] ^ ({a[4],b[6]});
++  assign code1[1:0] = a[6:5] ^ {a[4],b[6]};
+   assign foo = {(((1 + 1))-((0))+1){1'b0}};
+   assign egg = {78{1'b0}};
+   assign baz = {(((bus_width * 4))-((bus_width * 3 - 1))+1){1'b1}};
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index c078287b85ee3..49b3130a4d9f2 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -70,9 +70,10 @@ let
       { case = range "8.7" "8.10";  out = ocamlPackages_4_09; }
       { case = range "8.5" "8.6";   out = ocamlPackages_4_05; }
     ] ocamlPackages_4_12;
-  ocamlNativeBuildInputs = [ ocamlPackages.ocaml ocamlPackages.findlib ]
+  ocamlNativeBuildInputs = [ ocamlPackages.ocaml ]
     ++ optional (coqAtLeast "8.14") ocamlPackages.dune_2;
-  ocamlBuildInputs = []
+  ocamlPropagatedNativeBuildInputs = [ ocamlPackages.findlib ];
+  ocamlPropagatedBuildInputs = [ ]
     ++ optional (!coqAtLeast "8.10") ocamlPackages.camlp5
     ++ optional (!coqAtLeast "8.13") ocamlPackages.num
     ++ optional (coqAtLeast "8.13") ocamlPackages.zarith;
@@ -82,7 +83,8 @@ self = stdenv.mkDerivation {
 
   passthru = {
     inherit coq-version;
-    inherit ocamlPackages ocamlBuildInputs ocamlNativeBuildInputs;
+    inherit ocamlPackages ocamlNativeNuildInputs;
+    inherit ocamlPropagatedBuildInputs ocamlPropagatedNativeBuildInputs;
     # For compatibility
     inherit (ocamlPackages) ocaml camlp5 findlib num ;
     emacsBufferSetup = pkgs: ''
@@ -136,13 +138,16 @@ self = stdenv.mkDerivation {
     ++ optional buildIde copyDesktopItems
     ++ optional (buildIde && coqAtLeast "8.10") wrapGAppsHook
     ++ optional (!coqAtLeast "8.6") gnumake42;
-  buildInputs = [ ncurses ] ++ ocamlBuildInputs
+  buildInputs = [ ncurses ]
     ++ optionals buildIde
       (if coqAtLeast "8.10"
        then [ ocamlPackages.lablgtk3-sourceview3 glib gnome.adwaita-icon-theme ]
        else [ ocamlPackages.lablgtk ])
   ;
 
+  propagatedNativeBuildInputs = ocamlPropagatedNativeBuildInputs;
+  propagatedBuildInputs = ocamlPropagatedBuildInputs;
+
   postPatch = ''
     UNAME=$(type -tp uname)
     RM=$(type -tp rm)
diff --git a/pkgs/applications/science/logic/monosat/default.nix b/pkgs/applications/science/logic/monosat/default.nix
index 1356c88d478fc..e49c80db9d6e6 100644
--- a/pkgs/applications/science/logic/monosat/default.nix
+++ b/pkgs/applications/science/logic/monosat/default.nix
@@ -65,7 +65,7 @@ let
     };
   };
 
-  python = { buildPythonPackage, cython }: buildPythonPackage {
+  python = { buildPythonPackage, cython, pytestCheckHook }: buildPythonPackage {
     inherit pname version src patches;
 
     propagatedBuildInputs = [ core cython ];
@@ -85,5 +85,12 @@ let
       substituteInPlace setup.py \
         --replace 'library_dir = "../../../../"' 'library_dir = "${core}/lib/"'
     '';
+
+    checkInputs = [ pytestCheckHook ];
+
+    disabledTests = [
+      "test_assertAtMostOne"
+      "test_assertEqual"
+    ];
   };
 in core
diff --git a/pkgs/applications/science/math/ripser/default.nix b/pkgs/applications/science/math/ripser/default.nix
index 21f0d00339151..50ccee58f5039 100644
--- a/pkgs/applications/science/math/ripser/default.nix
+++ b/pkgs/applications/science/math/ripser/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchFromGitHub
-, assembleReductionMatrix ? false
+{ lib, stdenv, fetchFromGitHub
 , useCoefficients ? false
 , indicateProgress ? false
 , useGoogleHashmap ? false, sparsehash ? null
@@ -14,7 +13,7 @@ assert useGoogleHashmap -> sparsehash != null;
 
 let
   inherit (lib) optional;
-  version = "1.0";
+  version = "1.2.1";
 in
 stdenv.mkDerivation {
   pname = "ripser";
@@ -23,25 +22,17 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "Ripser";
     repo = "ripser";
-    rev = "f69c6af6ca6883dd518c48faf41cf8901c379598";
-    sha256 = "1mw2898s7l29hgajsaf75bs9bjn2sn4g2mvmh41a602jpwp9r0rz";
+    rev = "v${version}";
+    sha256 = "sha256-BxmkPQ/nl5cF+xwQMTjXnLgkLgdmT/39y7Kzl2wDfpE=";
   };
 
-  #Patch from dev branch to make compilation work.
-  #Will be removed when it gets merged into master.
-  patches = [(fetchurl {
-    url = "https://github.com/Ripser/ripser/commit/dc78d8ce73ee35f3828f0aad67a4e53620277ebf.patch";
-    sha256 = "1y93aqpqz8fm1cxxrf90dhh67im3ndkr8dnxgbw5y96296n4r924";
-  })];
-
   buildInputs = optional useGoogleHashmap sparsehash;
 
   buildFlags = [
     "-std=c++11"
-    "-Ofast"
+    "-O3"
     "-D NDEBUG"
   ]
-  ++ optional assembleReductionMatrix "-D ASSEMBLE_REDUCTION_MATRIX"
   ++ optional useCoefficients "-D USE_COEFFICIENTS"
   ++ optional indicateProgress "-D INDICATE_PROGRESS"
   ++ optional useGoogleHashmap "-D USE_GOOGLE_HASHMAP"
diff --git a/pkgs/applications/version-management/rapidsvn/default.nix b/pkgs/applications/version-management/rapidsvn/default.nix
index 60d011b653d4e..bcb90c20698b7 100644
--- a/pkgs/applications/version-management/rapidsvn/default.nix
+++ b/pkgs/applications/version-management/rapidsvn/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, wxGTK, subversion, apr, aprutil, python2 }:
+{ lib, stdenv, fetchurl, wxGTK, subversion, apr, aprutil, python3, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "rapidsvn";
@@ -9,13 +9,28 @@ stdenv.mkDerivation rec {
     sha256 = "1bmcqjc12k5w0z40k7fkk8iysqv4fw33i80gvcmbakby3d4d4i4p";
   };
 
-  buildInputs = [ wxGTK subversion apr aprutil python2 ];
+  buildInputs = [ wxGTK subversion apr aprutil python3 ];
+
+  NIX_CFLAGS_COMPILE = [ "-std=c++14" ];
 
   configureFlags = [ "--with-svn-include=${subversion.dev}/include"
     "--with-svn-lib=${subversion.out}/lib" ];
 
   patches = [
     ./fix-build.patch
+    # Python 3 compatibility patches
+    (fetchpatch {
+      url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/2e26fd5d6a413d6c3a055c17ac4840b95d1537e9.patch";
+      hash = "sha256-8acABzscgZh1bfAt35KHfU+nfaiO7P1b+lh34Bj0REI=";
+    })
+    (fetchpatch {
+      url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/92927af764f92b3731333ed3dba637f98611167a.patch";
+      hash = "sha256-4PdShGcfFwxjdI3ygbnKFAa8l9dGERq/xSl54WisgKM=";
+    })
+    (fetchpatch {
+      url = "https://github.com/RapidSVN/RapidSVN/pull/44/commits/3e375f11d94cb8faddb8b7417354a9fb51f304ec.patch";
+      hash = "sha256-BUpCMEH7jctOLtJktDUE52bxexfLemLItZ0IgdAnq9g=";
+    })
   ];
 
   meta = {
@@ -23,5 +38,7 @@ stdenv.mkDerivation rec {
     homepage = "http://rapidsvn.tigris.org/";
     license = lib.licenses.gpl3Plus;
     maintainers = [ lib.maintainers.viric ];
+    platforms = lib.platforms.unix;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 89568129918da..0c9ecf7e4d8ff 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "4.0.3";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "sha256-o/CIs+3LnbaUUpOQI1hijrxH7f1qBnrQw56TJ18jKQw=";
+    sha256 = "sha256-3MR4ZhkhMLAK3KHu7JEV9z1/wlyCkxfx1i267TGxwt8=";
   };
 
   vendorSha256 = null;
@@ -97,5 +97,8 @@ buildGoModule rec {
     changelog = "https://github.com/containers/podman/blob/v${version}/RELEASE_NOTES.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
+    # requires >= 10.13 SDK https://github.com/NixOS/nixpkgs/issues/101229
+    # Undefined symbols for architecture x86_64: "_utimensat"
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/applications/virtualization/runc/default.nix b/pkgs/applications/virtualization/runc/default.nix
index e295a51637a7e..dbe434578963b 100644
--- a/pkgs/applications/virtualization/runc/default.nix
+++ b/pkgs/applications/virtualization/runc/default.nix
@@ -16,13 +16,13 @@
 
 buildGoModule rec {
   pname = "runc";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "sha256-6g2km+Y45INo2MTWMFFQFhfF8DAR5Su+YrJS8k3LYBY=";
+    sha256 = "sha256-tMneqB81w8lQp5RWWCjALyKbOY3xog+oqb6cYKasG/8=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix
index a681bbda5575d..70c62c659a2d2 100644
--- a/pkgs/build-support/coq/default.nix
+++ b/pkgs/build-support/coq/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, coqPackages, coq, fetchzip }@args:
+{ lib, stdenv, coqPackages, coq, which, fetchzip }@args:
 let lib = import ./extra-lib.nix {inherit (args) lib;}; in
 with builtins; with lib;
 let
@@ -15,8 +15,12 @@ in
   releaseRev ? (v: v),
   displayVersion ? {},
   release ? {},
+  buildInputs ? [],
+  nativeBuildInputs ? [],
   extraBuildInputs ? [],
   extraNativeBuildInputs ? [],
+  overrideBuildInputs ? [],
+  overrideNativeBuildInputs ? [],
   namePrefix ? [ "coq" ],
   enableParallelBuilding ? true,
   extraInstallFlags ? [],
@@ -35,7 +39,11 @@ let
   args-to-remove = foldl (flip remove) ([
     "version" "fetcher" "repo" "owner" "domain" "releaseRev"
     "displayVersion" "defaultVersion" "useMelquiondRemake"
-    "release" "extraBuildInputs" "extraNativeBuildInputs" "extraPropagatedBuildInputs" "namePrefix"
+    "release"
+    "buildInputs" "nativeBuildInputs"
+    "extraBuildInputs" "extraNativeBuildInputs"
+    "overrideBuildInputs" "overrideNativeBuildInputs"
+    "namePrefix"
     "meta" "useDune2ifVersion" "useDune2" "opam-name"
     "extraInstallFlags" "setCOQBIN" "mlPlugin"
     "dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs;
@@ -57,9 +65,16 @@ let
     ] "") + optionalString (v == null) "-broken";
   append-version = p: n: p + display-pkg n "" coqPackages.${n}.version + "-";
   prefix-name = foldl append-version "" namePrefix;
-  var-coqlib-install =
-    (optionalString (versions.isGe "8.7" coq.coq-version || coq.coq-version == "dev") "COQMF_") + "COQLIB";
   useDune2 = args.useDune2 or (useDune2ifVersion fetched.version);
+  coqlib-flags = switch coq.coq-version [
+    { case = v: versions.isLe "8.6" v && v != "dev" ;
+      out = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ]; }
+  ] [ "COQLIBINSTALL=$(out)/lib/coq/${coq.coq-version}/user-contrib"
+      "COQPLUGININSTALL=$(OCAMLFIND_DESTDIR)" ];
+  docdir-flags = switch coq.coq-version [
+    { case = v: versions.isLe "8.6" v && v != "dev";
+      out = [ "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ]; }
+  ] [ "COQDOCINSTALL=$(out)/share/coq/${coq.coq-version}/user-contrib" ];
 in
 
 stdenv.mkDerivation (removeAttrs ({
@@ -68,12 +83,12 @@ stdenv.mkDerivation (removeAttrs ({
 
   inherit (fetched) version src;
 
-  nativeBuildInputs = [ coq ]
-    ++ optionals useDune2 [coq.ocaml coq.ocamlPackages.dune_2]
-    ++ optionals mlPlugin coq.ocamlNativeBuildInputs
-    ++ extraNativeBuildInputs;
-  buildInputs = optionals mlPlugin coq.ocamlBuildInputs
-    ++ extraBuildInputs;
+  nativeBuildInputs = args.overrideNativeBuildInputs
+    or ([ which ] ++ optional useDune2 coq.ocamlPackages.dune_2
+        ++ optional (useDune2 || mlPlugin) coq.ocaml
+        ++ (args.nativeBuildInputs or []) ++ extraNativeBuildInputs);
+  buildInputs = args.overrideBuildInputs
+    or ([ coq ] ++ (args.buildInputs or []) ++ extraBuildInputs);
   inherit enableParallelBuilding;
 
   meta = ({ platforms = coq.meta.platforms; } //
@@ -88,9 +103,7 @@ stdenv.mkDerivation (removeAttrs ({
 // (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; })
 // (optionalAttrs (!args?installPhase && !args?useMelquiondRemake) {
   installFlags =
-    [ "${var-coqlib-install}=$(out)/lib/coq/${coq.coq-version}/" ] ++
-    optional (match ".*doc$" (args.installTargets or "") != null)
-      "DOCDIR=$(out)/share/coq/${coq.coq-version}/" ++
+    [ "DESTDIR=$(out)" ] ++ coqlib-flags ++ docdir-flags ++
     extraInstallFlags;
 })
 // (optionalAttrs useDune2 {
diff --git a/pkgs/data/documentation/nginx-doc/default.nix b/pkgs/data/documentation/nginx-doc/default.nix
new file mode 100644
index 0000000000000..c367912d6f982
--- /dev/null
+++ b/pkgs/data/documentation/nginx-doc/default.nix
@@ -0,0 +1,40 @@
+{ lib, stdenv, libxml2, libxslt, fetchhg }:
+
+# Upstream maintains documentation (sources of https://nginx.org) in separate
+# mercurial repository, which do not correspond to particular git commit, but at
+# least has "introduced in version X.Y" comments.
+#
+# In other words, documentation does not necessary matches capabilities of
+# $out/bin/nginx, but we have no better options.
+stdenv.mkDerivation {
+  pname = "nginx-doc-unstable";
+  version = "2022-05-05";
+  src = fetchhg {
+    url = "https://hg.nginx.org/nginx.org";
+    rev = "a3aee2697d4e";
+    sha256 = "029n4mnmjw94h01qalmjgf1c2h3h7wm798xv5knk3padxiy4m28b";
+  };
+  patches = [ ./exclude-google-analytics.patch ];
+  nativeBuildInputs = [ libxslt libxml2 ];
+
+  # Generated documentation is not local-friendly, since it assumes that link to directory
+  # is the same as link to index.html in that directory, which is not how browsers behave
+  # with local filesystem.
+  #
+  # TODO: patch all relative links that do not end with .html.
+
+  # /en subdirectory must exist, relative links expect it.
+  installPhase = ''
+    mkdir -p $out/share/doc/nginx
+    mv libxslt/en $out/share/doc/nginx
+  '';
+
+  meta = with lib; {
+    description = "A reverse proxy and lightweight webserver (documentation)";
+    homepage    = "https://nginx.org/";
+    license     = licenses.bsd2;
+    platforms   = platforms.all;
+    priority    = 6;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/data/documentation/nginx-doc/exclude-google-analytics.patch b/pkgs/data/documentation/nginx-doc/exclude-google-analytics.patch
new file mode 100644
index 0000000000000..c2f3f520c3d10
--- /dev/null
+++ b/pkgs/data/documentation/nginx-doc/exclude-google-analytics.patch
@@ -0,0 +1,29 @@
+Kill google analytics from local documentation.
+
+diff -r bb0a2fbdc886 xslt/ga.xslt
+--- a/xslt/ga.xslt	Mon Apr 06 11:17:11 2020 +0100
++++ b/xslt/ga.xslt	Thu Apr 09 10:29:02 2020 -0400
+@@ -6,23 +6,6 @@
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ 
+ <xsl:template name="ga">
+-
+-    <script>
+-        (function(w, d, s, l, i) {
+-            w[l] = w[l] || [];
+-            w[l].push({
+-                'gtm.start': new Date().getTime(),
+-                event: 'gtm.js'
+-            });
+-            var f = d.getElementsByTagName(s)[0],
+-                j = d.createElement(s),
+-                dl = l != 'dataLayer' ? '&amp;l=' + l : '';
+-            j.async = true;
+-            j.src = '//www.googletagmanager.com/gtm.js?id=' + i + dl;
+-            f.parentNode.insertBefore(j, f);
+-        })(window, document, 'script', 'dataLayer', 'GTM-TPSP33');
+-    </script>
+-
+ </xsl:template>
+ 
+ </xsl:stylesheet>
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 703913998a452..17b241e7a9cbc 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -2,49 +2,41 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, pkg-config
 , meson
 , ninja
-, vala
-, desktop-file-utils
-, libxml2
-, gtk3
+, pkg-config
 , python3
-, granite
+, vala
+, wrapGAppsHook4
+, granite7
+, gtk4
 , libgee
-, libhandy
-, appstream
-, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-calculator";
-  version = "1.7.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "calculator";
     rev = version;
-    sha256 = "sha256-U0wXrw9ZJwkqZAtTTHmTzqYhwF9V2JZEZZdDak3kPIc=";
+    sha256 = "sha256-NE7x5vSfwakwJJe2VGRFiYc7GCB1M6xU5945EC6Em34=";
   };
 
   nativeBuildInputs = [
-    appstream
-    desktop-file-utils
-    libxml2
     meson
     ninja
     pkg-config
     python3
     vala
-    wrapGAppsHook
+    wrapGAppsHook4
   ];
 
   buildInputs = [
-    granite
-    gtk3
+    granite7
+    gtk4
     libgee
-    libhandy
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 06fbfdc078e2e..d8aa9483abefe 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -30,13 +30,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-greeter";
-  version = "6.0.2";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "greeter";
     rev = version;
-    sha256 = "sha256-0chBM8JuCYgZXHneiSxSICZwBVm2Vgx+bas9wUjbnyg=";
+    sha256 = "sha256-CY+dPSyQ/ovSdI80uEipDdnWy1KjbZnwpn9sd8HrbPQ=";
   };
 
   patches = [
diff --git a/pkgs/development/compilers/alan/2.nix b/pkgs/development/compilers/alan/2.nix
index e24cc35a9d74e..7329a0115d845 100644
--- a/pkgs/development/compilers/alan/2.nix
+++ b/pkgs/development/compilers/alan/2.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
 
   makefile = "Makefile.unix";
 
+  # Add a workarounf for -fno-common tollchains like upstream gcc-10.
+  # alan-3 is already fixed, but the backport is nontrivial.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   installPhase = ''
     mkdir -p $out/bin $out/share/alan2
     cp compiler/alan $out/bin/alan2
diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix
index 5693fa7455122..aad9c27fc563b 100644
--- a/pkgs/development/compilers/go/1.18.nix
+++ b/pkgs/development/compilers/go/1.18.nix
@@ -54,11 +54,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.18.1";
+  version = "1.18.2";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${version}.src.tar.gz";
-    sha256 = "sha256-79Q+DxQC4IO3OgPURLe2V2u0xTmsRiCLY6kWtprKQIg=";
+    sha256 = "sha256-LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I=";
   };
 
   # perl is used for testing go vet
diff --git a/pkgs/development/coq-modules/CoLoR/default.nix b/pkgs/development/coq-modules/CoLoR/default.nix
index 9270609c6b2fa..0fdcb49d73008 100644
--- a/pkgs/development/coq-modules/CoLoR/default.nix
+++ b/pkgs/development/coq-modules/CoLoR/default.nix
@@ -20,7 +20,7 @@ with lib; mkCoqDerivation {
   release."1.4.0".rev    = "168c6b86c7d3f87ee51791f795a8828b1521589a";
   release."1.4.0".sha256 = "1d2whsgs3kcg5wgampd6yaqagcpmzhgb6a0hp6qn4lbimck5dfmm";
 
-  extraBuildInputs = [ bignums ];
+  propagatedBuildInputs = [ bignums ];
   enableParallelBuilding = false;
 
   meta = {
diff --git a/pkgs/development/coq-modules/HoTT/default.nix b/pkgs/development/coq-modules/HoTT/default.nix
index 706943cf8d024..f6e9b3daca2db 100644
--- a/pkgs/development/coq-modules/HoTT/default.nix
+++ b/pkgs/development/coq-modules/HoTT/default.nix
@@ -8,7 +8,7 @@ with lib; mkCoqDerivation {
   release."20170921".rev    = "e3557740a699167e6adb1a65855509d55a392fa1";
   release."20170921".sha256 = "0zwfp8g62b50vmmbb2kmskj3v6w7qx1pbf43yw0hr7asdz2zbx5v";
 
-  extraBuildInputs = [ autoconf automake ];
+  nativeBuildInputs = [ autoconf automake ];
 
   preConfigure = ''
     patchShebangs ./autogen.sh
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index db3227c1770e0..c2e6a5431c918 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -36,8 +36,7 @@ let recent = lib.versions.isGe "8.7" coq.coq-version; in
     "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native";
 
   mlPlugin = true;
-  extraNativeBuildInputs = lib.optional recent coq.ocamlPackages.ocamlbuild;
-  extraBuildInputs = lib.optional recent coq.ocamlPackages.num;
+  nativeBuildInputs = lib.optional recent coq.ocamlPackages.ocamlbuild;
   propagatedBuildInputs = [ ssreflect ]
     ++ lib.optionals recent [ coq-ext-lib simple-io ];
   extraInstallFlags = [ "-f Makefile.coq" ];
diff --git a/pkgs/development/coq-modules/VST/default.nix b/pkgs/development/coq-modules/VST/default.nix
index a5dee94d045dc..8bf8a8680237d 100644
--- a/pkgs/development/coq-modules/VST/default.nix
+++ b/pkgs/development/coq-modules/VST/default.nix
@@ -31,7 +31,7 @@ mkCoqDerivation {
   release."2.9".sha256 = "sha256:1adwzbl1pprrrwrm7cm493098fizxanxpv7nyfbvwdhgbhcnv6qf";
   release."2.8".sha256 = "sha256-cyK88uzorRfjapNQ6XgQEmlbWnDsiyLve5po1VG52q0=";
   releaseRev = v: "v${v}";
-  extraBuildInputs = [ ITree ];
+  buildInputs = [ ITree ];
   propagatedBuildInputs = [ compcert ];
 
   preConfigure = ''
diff --git a/pkgs/development/coq-modules/bignums/default.nix b/pkgs/development/coq-modules/bignums/default.nix
index 0001ae1ded4d8..a53b8199fe96e 100644
--- a/pkgs/development/coq-modules/bignums/default.nix
+++ b/pkgs/development/coq-modules/bignums/default.nix
@@ -5,7 +5,7 @@ with lib; mkCoqDerivation {
   owner = "coq";
   displayVersion = { bignums = ""; };
   inherit version;
-  defaultVersion = if versions.isGe "8.5" coq.coq-version
+  defaultVersion = if versions.isGe "8.6" coq.coq-version
     then "${coq.coq-version}.0" else null;
 
   release."8.15.0".sha256 = "093klwlhclgyrba1iv18dyz1qp5f0lwiaa7y0qwvgmai8rll5fns";
diff --git a/pkgs/development/coq-modules/compcert/default.nix b/pkgs/development/coq-modules/compcert/default.nix
index 092bb58d174fa..5d2eb4433e6b1 100644
--- a/pkgs/development/coq-modules/compcert/default.nix
+++ b/pkgs/development/coq-modules/compcert/default.nix
@@ -1,5 +1,5 @@
 { lib, fetchzip, mkCoqDerivation, coq, flocq, compcert
-, ocamlPackages, fetchpatch, makeWrapper, coq2html
+, fetchpatch, makeWrapper, coq2html
 , stdenv, tools ? stdenv.cc
 , version ? null
 }:
@@ -15,9 +15,9 @@ let compcert = mkCoqDerivation rec {
   releaseRev = v: "v${v}";
 
   defaultVersion =  with versions; switch coq.version [
-      { case = range "8.8" "8.11"; out = "3.8"; }
+      { case = range "8.13" "8.15"; out = "3.10"; }
       { case = isEq "8.12"       ; out = "3.9"; }
-      { case = range "8.12" "8.15"; out = "3.10"; }
+      { case = range "8.8" "8.11"; out = "3.8"; }
     ] null;
 
   release = {
@@ -26,8 +26,9 @@ let compcert = mkCoqDerivation rec {
     "3.10".sha256 = "sha256:19rmx8r8v46101ij5myfrz60arqjy7q3ra3fb8mxqqi3c8c4l4j6";
   };
 
+  mlPlugin = true;
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = with ocamlPackages; [ ocaml findlib menhir menhirLib ] ++ [ coq coq2html ];
+  buildInputs = with coq.ocamlPackages; [ menhir menhirLib ] ++ [ coq2html ];
   propagatedBuildInputs = [ flocq ];
 
   enableParallelBuilding = true;
@@ -48,9 +49,13 @@ let compcert = mkCoqDerivation rec {
   '';
 
   installTargets = "documentation install";
+  installFlags = []; # trust ./configure
+  preInstall = ''
+    mkdir -p $out/share/man
+    mkdir -p $man/share
+  '';
   postInstall = ''
     # move man into place
-    mkdir -p $man/share
     mv $out/share/man/ $man/share/
 
     # move docs into place
diff --git a/pkgs/development/coq-modules/coq-bits/default.nix b/pkgs/development/coq-modules/coq-bits/default.nix
index 6cb6bb3c813ee..f604db4ecdf71 100644
--- a/pkgs/development/coq-modules/coq-bits/default.nix
+++ b/pkgs/development/coq-modules/coq-bits/default.nix
@@ -1,34 +1,18 @@
-{ lib, mkCoqDerivation, coq, mathcomp, version ? null }:
+{ lib, mkCoqDerivation, coq, mathcomp-algebra, version ? null }:
 
 with lib; mkCoqDerivation {
   pname = "coq-bits";
   repo = "bits";
   inherit version;
-  defaultVersion =
-    if versions.isGe "8.10" coq.version
-    then "1.1.0"
-    else if versions.isGe "8.7" coq.version
-    then "1.0.0"
-    else null;
+  defaultVersion = with versions; switch coq.coq-version [
+    { case = isGe "8.10"; out = "1.1.0"; }
+    { case = isGe "8.7";  out = "1.0.0"; }
+  ] null;
 
-  release = {
-    "1.0.0" = {
-      rev = "1.0.0";
-      sha256 = "0nv5mdgrd075dpd8bc7h0xc5i95v0pkm0bfyq5rj6ii1s54dwcjl";
-    };
-    "1.1.0" = {
-      rev = "1.1.0";
-      sha256 = "sha256-TCw1kSXeW0ysIdLeNr+EGmpGumEE9i8tinEMp57UXaE=";
-    };
-  };
-
-  extraBuildInputs = [ mathcomp.ssreflect mathcomp.fingroup ];
-  propagatedBuildInputs = [ mathcomp.algebra ];
+  release."1.1.0".sha256 = "sha256-TCw1kSXeW0ysIdLeNr+EGmpGumEE9i8tinEMp57UXaE=";
+  release."1.0.0".sha256 = "0nv5mdgrd075dpd8bc7h0xc5i95v0pkm0bfyq5rj6ii1s54dwcjl";
 
-  installPhase = ''
-    make -f Makefile CoqMakefile
-    make -f CoqMakefile COQLIB=$out/lib/coq/${coq.coq-version}/ install
-  '';
+  propagatedBuildInputs = [ mathcomp-algebra ];
 
   meta = {
     description = "A formalization of bitset operations in Coq";
diff --git a/pkgs/development/coq-modules/coq-elpi/default.nix b/pkgs/development/coq-modules/coq-elpi/default.nix
index 55423047caa70..03fe8c32d5c33 100644
--- a/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -7,7 +7,7 @@ with builtins; with lib; let
     { case = "8.13"; out = { version = "1.13.7"; };}
     { case = "8.14"; out = { version = "1.13.7"; };}
     { case = "8.15"; out = { version = "1.14.1"; };}
-  ] {});
+  ] { version = "1.14.1"; } );
 in mkCoqDerivation {
   pname = "elpi";
   repo  = "coq-elpi";
@@ -48,8 +48,8 @@ in mkCoqDerivation {
   release."1.6.0".sha256      = "0kf99i43mlf750fr7fric764mm495a53mg5kahnbp6zcjcxxrm0b";
   releaseRev = v: "v${v}";
 
-  extraNativeBuildInputs = [ which elpi ];
   mlPlugin = true;
+  propagatedBuildInputs = [ elpi ];
 
   meta = {
     description = "Coq plugin embedding ELPI.";
diff --git a/pkgs/development/coq-modules/coqeal/default.nix b/pkgs/development/coq-modules/coqeal/default.nix
index 3b8b23618d232..563e2dc22d6df 100644
--- a/pkgs/development/coq-modules/coqeal/default.nix
+++ b/pkgs/development/coq-modules/coqeal/default.nix
@@ -1,6 +1,6 @@
 { coq, mkCoqDerivation, mathcomp, bignums, paramcoq, multinomials,
   mathcomp-real-closed,
-  lib, which, version ? null }:
+  lib, version ? null }:
 
 with lib;
 
@@ -22,7 +22,6 @@ with lib;
   release."1.0.4".sha256 = "1g5m26lr2lwxh6ld2gykailhay4d0ayql4bfh0aiwqpmmczmxipk";
   release."1.0.3".sha256 = "0hc63ny7phzbihy8l7wxjvn3haxx8jfnhi91iw8hkq8n29i23v24";
 
-  extraBuildInputs = [ which ];
   propagatedBuildInputs = [ mathcomp.algebra bignums paramcoq multinomials ];
 
   meta = {
diff --git a/pkgs/development/coq-modules/coqhammer/default.nix b/pkgs/development/coq-modules/coqhammer/default.nix
index 66a3dd222dd5b..853e77990b6eb 100644
--- a/pkgs/development/coq-modules/coqhammer/default.nix
+++ b/pkgs/development/coq-modules/coqhammer/default.nix
@@ -28,8 +28,10 @@ with lib; mkCoqDerivation {
   release."1.3-coq8.12".sha256   = "1q1y3cwhd98pkm98g71fsdjz85bfwgcz2xn7s7wwmiraifv5l6z8";
   release."1.3-coq8.11".sha256   = "08zf8qfna7b9p2myfaz4g7bas3a1q1156x78n5isqivlnqfrjc1b";
   release."1.3-coq8.10".sha256   = "1fj8497ir4m79hyrmmmmrag01001wrby0h24wv6525vz0w5py3cd";
-  release."1.1.1-coq8.9".sha256  = "1knjmz4hr8vlp103j8n4fyb2lfxysnm512gh3m2kp85n6as6fvb9";
-  release."1.1-coq8.8".sha256    = "0ms086wp4jmrzyglb8wymchzyflflk01nsfsk4r6qv8rrx81nx9h";
+  release."1.1.1-coq8.9" = { sha256 = "1knjmz4hr8vlp103j8n4fyb2lfxysnm512gh3m2kp85n6as6fvb9";
+                             rev    = "f8b4d81a213aa1f25afbe53c7c9ca1b15e3d42bc"; };
+  release."1.1-coq8.8" =   { sha256 = "0ms086wp4jmrzyglb8wymchzyflflk01nsfsk4r6qv8rrx81nx9h";
+                             rev    = "c3cb54b4d5f33fab372d33c7189861368a08fa22"; };
 
   release."1.3.1-coq8.13".version  = "1.3.1";
   release."1.3.1-coq8.12".version  = "1.3.1";
diff --git a/pkgs/development/coq-modules/coqprime/default.nix b/pkgs/development/coq-modules/coqprime/default.nix
index 46ede02a57e69..26988b81e1a6b 100644
--- a/pkgs/development/coq-modules/coqprime/default.nix
+++ b/pkgs/development/coq-modules/coqprime/default.nix
@@ -20,7 +20,6 @@ with lib; mkCoqDerivation {
   release."8.7.2".sha256 = "15zlcrx06qqxjy3nhh22wzy0rb4npc8l4nx2bbsfsvrisbq1qb7k";
   releaseRev = v: "v${v}";
 
-  extraBuildInputs = [ which ];
   propagatedBuildInputs = [ bignums ];
 
   meta = with lib; {
diff --git a/pkgs/development/coq-modules/coqtail-math/default.nix b/pkgs/development/coq-modules/coqtail-math/default.nix
index 3491e6b21f2f8..a4f7ca405f713 100644
--- a/pkgs/development/coq-modules/coqtail-math/default.nix
+++ b/pkgs/development/coq-modules/coqtail-math/default.nix
@@ -14,9 +14,7 @@ mkCoqDerivation {
   release."8.14".sha256 = "sha256:1k8f8idjnx0mf4z479vcx55iz42rjxrbplbznv80m2famxakq03c";
   release."20201124".rev    = "5c22c3d7dcd8cf4c47cf84a281780f5915488e9e";
   release."20201124".sha256 = "sha256-wd+Lh7dpAD4zfpyKuztDmSFEZo5ZiFrR8ti2jUCVvoQ=";
-
-  extraNativeBuildInputs = with coq.ocamlPackages; [ ocaml findlib ];
-
+  mlPlugin = true;
   meta = {
     license = licenses.lgpl3Only;
     maintainers = [ maintainers.siraben ];
diff --git a/pkgs/development/coq-modules/coquelicot/default.nix b/pkgs/development/coq-modules/coquelicot/default.nix
index 1a6dba9b0c085..09dd65df41d22 100644
--- a/pkgs/development/coq-modules/coquelicot/default.nix
+++ b/pkgs/development/coq-modules/coquelicot/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkCoqDerivation, which, autoconf,
+{ lib, mkCoqDerivation, autoconf,
   coq, ssreflect, version ? null }:
 
 with lib; mkCoqDerivation {
@@ -16,7 +16,7 @@ with lib; mkCoqDerivation {
   release."3.0.2".sha256 = "1rqfbbskgz7b1bcpva8wh3v3456sq2364y804f94sc8y5sij23nl";
   releaseRev = v: "coquelicot-${v}";
 
-  extraNativeBuildInputs = [ which autoconf ];
+  nativeBuildInputs = [ autoconf ];
   propagatedBuildInputs = [ ssreflect ];
   useMelquiondRemake.logpath = "Coquelicot";
 
diff --git a/pkgs/development/coq-modules/dpdgraph/default.nix b/pkgs/development/coq-modules/dpdgraph/default.nix
index 7cf6132bf6a9a..fcc1303e82761 100644
--- a/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -39,9 +39,9 @@ mkCoqDerivation {
   release."0.6".sha256   = "0qvar8gfbrcs9fmvkph5asqz4l5fi63caykx3bsn8zf0xllkwv0n";
   releaseRev = v: "v${v}";
 
-  extraNativeBuildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
   mlPlugin = true;
-  extraBuildInputs = [ coq.ocamlPackages.ocamlgraph ];
+  buildInputs = [ coq.ocamlPackages.ocamlgraph ];
 
   # dpd_compute.ml uses deprecated Pervasives.compare
   # Versions prior to 0.6.5 do not have the WARN_ERR build flag
diff --git a/pkgs/development/coq-modules/fiat/HEAD.nix b/pkgs/development/coq-modules/fiat/HEAD.nix
index 47f097a34b2ef..d94dc03b63779 100644
--- a/pkgs/development/coq-modules/fiat/HEAD.nix
+++ b/pkgs/development/coq-modules/fiat/HEAD.nix
@@ -8,10 +8,10 @@ with lib; mkCoqDerivation rec {
   inherit version;
   defaultVersion = if coq.coq-version == "8.5" then "2016-10-24" else null;
   release."2016-10-24".rev    = "7feb6c64be9ebcc05924ec58fe1463e73ec8206a";
-  release."2016-10-24".sha256 = "0griqc675yylf9rvadlfsabz41qy5f5idya30p5rv6ysiakxya64";
+  release."2016-10-24".sha256 = "16y57vibq3f5i5avgj80f4i3aw46wdwzx36k5d3pf3qk17qrlrdi";
 
   mlPlugin = true;
-  extraBuildInputs = [ python27 ];
+  buildInputs = [ python27 ];
 
   prePatch = "patchShebangs etc/coq-scripts";
 
diff --git a/pkgs/development/coq-modules/flocq/default.nix b/pkgs/development/coq-modules/flocq/default.nix
index f13aec883e769..a0f4a3ecae82b 100644
--- a/pkgs/development/coq-modules/flocq/default.nix
+++ b/pkgs/development/coq-modules/flocq/default.nix
@@ -1,4 +1,4 @@
-{ lib, which, autoconf, automake,
+{ lib, bash, autoconf, automake,
   mkCoqDerivation, coq, version ? null }:
 
 with lib; mkCoqDerivation {
@@ -16,7 +16,7 @@ with lib; mkCoqDerivation {
   release."2.6.1".sha256 = "0q5a038ww5dn72yvwn5298d3ridkcngb1dik8hdyr3xh7gr5qibj";
   releaseRev = v: "flocq-${v}";
 
-  nativeBuildInputs = [ which autoconf ];
+  nativeBuildInputs = [ bash autoconf ];
   mlPlugin = true;
   useMelquiondRemake.logpath = "Flocq";
 
diff --git a/pkgs/development/coq-modules/gappalib/default.nix b/pkgs/development/coq-modules/gappalib/default.nix
index 23cbd46743b19..903b3518e5d6f 100644
--- a/pkgs/development/coq-modules/gappalib/default.nix
+++ b/pkgs/development/coq-modules/gappalib/default.nix
@@ -13,7 +13,7 @@ with lib; mkCoqDerivation {
   release."1.4.4".sha256 = "114q2hgw64j6kqa9mg3qcp1nlf0ia46z2xadq81fnkxqm856ml7l";
   releaseRev = v: "gappalib-coq-${v}";
 
-  extraNativeBuildInputs = [ which autoconf ];
+  nativeBuildInputs = [ autoconf ];
   mlPlugin = true;
   propagatedBuildInputs = [ flocq ];
   useMelquiondRemake.logpath = "Gappa";
diff --git a/pkgs/development/coq-modules/heq/default.nix b/pkgs/development/coq-modules/heq/default.nix
index 4bf9139b49473..c3a815eb5c87e 100644
--- a/pkgs/development/coq-modules/heq/default.nix
+++ b/pkgs/development/coq-modules/heq/default.nix
@@ -1,22 +1,26 @@
 {lib, fetchzip, mkCoqDerivation, coq, version ? null }:
 
+let fetcher = {rev, repo, owner, sha256, domain, ...}:
+  fetchzip {
+    url = "https://${domain}/${owner}/${repo}/download/${repo}-${rev}.zip";
+    inherit sha256;
+   }; in
 with lib; mkCoqDerivation {
   pname = "heq";
   repo = "Heq";
-  owner = "gil";
-  domain = "mpi-sws.org";
+  owner = "gil.hur";
+  domain = "sf.snu.ac.kr";
   inherit version fetcher;
   defaultVersion = if versions.isLt "8.8" coq.coq-version then "0.92" else null;
   release."0.92".sha256 = "0cf8y6728n81wwlbpq3vi7l2dbzi7759klypld4gpsjjp1y1fj74";
 
   mlPlugin = true;
-  propagatedBuildInputs = [ coq ];
-
-  extraInstallFlags = [ "COQLIB=$out/lib/coq/${coq.coq-version}" ];
   preBuild = "cd src";
 
+  extraInstallFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
+
   meta = {
-    homepage = "https://www.mpi-sws.org/~gil/Heq/";
+    homepage = "https://ropas.snu.ac.kr/~gil.hur/Heq/";
     description = "Heq : a Coq library for Heterogeneous Equality";
     maintainers = with maintainers; [ jwiegley ];
   };
diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix
index c0fa2d7c8e00a..6f15fc80388e0 100644
--- a/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkCoqDerivation, which, coq, coq-elpi, version ? null }:
+{ lib, mkCoqDerivation, coq, coq-elpi, version ? null }:
 
 with lib; let hb = mkCoqDerivation {
   pname = "hierarchy-builder";
@@ -17,13 +17,10 @@ with lib; let hb = mkCoqDerivation {
   release."0.10.0".sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h";
   releaseRev = v: "v${v}";
 
-  extraNativeBuildInputs = [ which ];
-
   propagatedBuildInputs = [ coq-elpi ];
 
   mlPlugin = true;
 
-  installFlags = [ "DESTDIR=$(out)" "COQMF_COQLIB=lib/coq/${coq.coq-version}" ];
   extraInstallFlags = [ "VFILES=structures.v" ];
 
   meta = {
diff --git a/pkgs/development/coq-modules/interval/default.nix b/pkgs/development/coq-modules/interval/default.nix
index b9257d415e57f..4134a8fd573d1 100644
--- a/pkgs/development/coq-modules/interval/default.nix
+++ b/pkgs/development/coq-modules/interval/default.nix
@@ -1,4 +1,5 @@
-{ lib, mkCoqDerivation, which, autoconf, coq, coquelicot, flocq, mathcomp-ssreflect, mathcomp-fingroup, bignums ? null, gnuplot_qt, version ? null }:
+{ lib, mkCoqDerivation, autoconf, coq, coquelicot, flocq,
+  mathcomp-ssreflect, mathcomp-fingroup, bignums ? null, gnuplot_qt, version ? null }:
 
 mkCoqDerivation rec {
   pname = "interval";
@@ -20,8 +21,9 @@ mkCoqDerivation rec {
   release."3.3.0".sha256 = "0lz2hgggzn4cvklvm8rpaxvwaryf37i8mzqajqgdxdbd8f12acsz";
   releaseRev = v: "interval-${v}";
 
-  extraNativeBuildInputs = [ which autoconf ];
-  propagatedBuildInputs = [ bignums coquelicot flocq mathcomp-ssreflect mathcomp-fingroup ]
+  nativeBuildInputs = [ autoconf ];
+  propagatedBuildInputs = lib.optional (lib.versions.isGe "8.6" coq.coq-version) bignums
+    ++ [ coquelicot flocq mathcomp-ssreflect mathcomp-fingroup ]
     ++ lib.optionals (lib.versions.isGe "4.2.0" defaultVersion) [ gnuplot_qt ];
   useMelquiondRemake.logpath = "Interval";
   mlPlugin = true;
diff --git a/pkgs/development/coq-modules/itauto/default.nix b/pkgs/development/coq-modules/itauto/default.nix
index 4993a76b4f08f..151a0511c806a 100644
--- a/pkgs/development/coq-modules/itauto/default.nix
+++ b/pkgs/development/coq-modules/itauto/default.nix
@@ -17,7 +17,7 @@ mkCoqDerivation rec {
   ] null;
 
   mlPlugin = true;
-  extraNativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]);
+  nativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]);
   enableParallelBuilding = false;
 
   meta = {
diff --git a/pkgs/development/coq-modules/ltac2/default.nix b/pkgs/development/coq-modules/ltac2/default.nix
index 1d0d03fb7f7ce..c938a7ad02790 100644
--- a/pkgs/development/coq-modules/ltac2/default.nix
+++ b/pkgs/development/coq-modules/ltac2/default.nix
@@ -17,7 +17,6 @@ with lib; mkCoqDerivation {
   release."0.1-8.7".rev     = "v0.1-8.7";
   release."0.1-8.7".sha256  = "0l6wiwi4cvd0i324fb29i9mdh0ijlxzggw4mrjjy695l2qdnlgg0";
 
-  nativeBuildInputs = [ which ];
   mlPlugin = true;
 
   meta = {
diff --git a/pkgs/development/coq-modules/math-classes/default.nix b/pkgs/development/coq-modules/math-classes/default.nix
index 0a78191d8b728..2504e852bafda 100644
--- a/pkgs/development/coq-modules/math-classes/default.nix
+++ b/pkgs/development/coq-modules/math-classes/default.nix
@@ -9,7 +9,7 @@ with lib; mkCoqDerivation {
   release."8.13.0".sha256 = "1ln7ziivfbxzbdvlhbvyg3v30jgblncmwcsam6gg3d1zz6r7cbby";
   release."8.15.0".sha256 = "10w1hm537k6jx8a8vghq1yx12rsa0sjk2ipv3scgir71ln30hllw";
 
-  extraBuildInputs = [ bignums ];
+  propagatedBuildInputs = [ bignums ];
 
   meta = {
     homepage = "https://math-classes.github.io";
diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix
index 0f562fec287c1..a19d8b8dcc79d 100644
--- a/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/pkgs/development/coq-modules/mathcomp/default.nix
@@ -10,9 +10,9 @@
 # See the documentation at doc/languages-frameworks/coq.section.md.        #
 ############################################################################
 
-{ lib, ncurses, which, graphviz, lua, fetchzip,
+{ lib, ncurses, graphviz, lua, fetchzip,
   mkCoqDerivation, recurseIntoAttrs, withDoc ? false, single ? false,
-  coqPackages, coq, ocamlPackages, version ? null }@args:
+  coqPackages, coq, version ? null }@args:
 with builtins // lib;
 let
   repo  = "math-comp";
@@ -60,8 +60,9 @@ let
         inherit version pname defaultVersion release releaseRev repo owner;
 
         mlPlugin = versions.isLe "8.6" coq.coq-version;
-        extraNativeBuildInputs = [ which ] ++ optionals withDoc [ graphviz lua ];
-        extraBuildInputs = [ ncurses ] ++ mathcomp-deps;
+        nativeBuildInputs = optionals withDoc [ graphviz lua ];
+        buildInputs = [ ncurses ];
+        propagatedBuildInputs = mathcomp-deps;
 
         buildFlags = optional withDoc "doc";
 
diff --git a/pkgs/development/coq-modules/metacoq/default.nix b/pkgs/development/coq-modules/metacoq/default.nix
index 583d8b7adb914..09327f46b86de 100644
--- a/pkgs/development/coq-modules/metacoq/default.nix
+++ b/pkgs/development/coq-modules/metacoq/default.nix
@@ -1,4 +1,4 @@
-{ lib, which, fetchzip,
+{ lib, fetchzip,
   mkCoqDerivation, recurseIntoAttrs,  single ? false,
   coqPackages, coq, equations, version ? null }@args:
 with builtins // lib;
@@ -36,10 +36,8 @@ let
       derivation = mkCoqDerivation ({
         inherit version pname defaultVersion release releaseRev repo owner;
 
-        extraNativeBuildInputs = [ which ];
         mlPlugin = true;
-        extraBuildInputs = [ coq.ocamlPackages.zarith ];
-        propagatedBuildInputs = [ equations ] ++ metacoq-deps;
+        propagatedBuildInputs = [ equations coq.ocamlPackages.zarith ] ++ metacoq-deps;
 
         patchPhase =  ''
           patchShebangs ./configure.sh
diff --git a/pkgs/development/coq-modules/metalib/default.nix b/pkgs/development/coq-modules/metalib/default.nix
index 26bd38f72df11..83333b3e1bf02 100644
--- a/pkgs/development/coq-modules/metalib/default.nix
+++ b/pkgs/development/coq-modules/metalib/default.nix
@@ -13,7 +13,6 @@ with lib; mkCoqDerivation {
   release."8.10".sha256 = "0wbypc05d2lqfm9qaw98ynr5yc1p0ipsvyc3bh1rk9nz7zwirmjs";
 
   sourceRoot = "source/Metalib";
-  installFlags = "COQMF_COQLIB=$(out)/lib/coq/${coq.coq-version}";
 
   meta = {
     license = licenses.mit;
diff --git a/pkgs/development/coq-modules/semantics/default.nix b/pkgs/development/coq-modules/semantics/default.nix
index e112512ec5c72..cbf1469e1f035 100644
--- a/pkgs/development/coq-modules/semantics/default.nix
+++ b/pkgs/development/coq-modules/semantics/default.nix
@@ -24,8 +24,8 @@ mkCoqDerivation rec {
   ] null;
 
   mlPlugin = true;
-  extraNativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]);
-  extraBuildInputs = (with coq.ocamlPackages; [ num ]);
+  nativeBuildInputs = (with coq.ocamlPackages; [ ocamlbuild ]);
+  propagatedBuildInputs = (with coq.ocamlPackages; [ num ]);
 
   postPatch = ''
     for p in Make Makefile.coq.local
diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix
index bcc391c4f724c..ca7325711e257 100644
--- a/pkgs/development/coq-modules/simple-io/default.nix
+++ b/pkgs/development/coq-modules/simple-io/default.nix
@@ -11,11 +11,9 @@ with lib; mkCoqDerivation {
   ] null;
   release."1.7.0".sha256 = "sha256:1a1q9x2abx71hqvjdai3n12jxzd49mhf3nqqh3ya2ssl2lj609ci";
   release."1.3.0".sha256 = "1yp7ca36jyl9kz35ghxig45x6cd0bny2bpmy058359p94wc617ax";
-  extraNativeBuildInputs = (with coq.ocamlPackages; [ cppo zarith ]);
-  propagatedBuildInputs = [ coq-ext-lib ]
-  ++ (with coq.ocamlPackages; [ ocaml ocamlbuild ]);
-
   mlPlugin = true;
+  nativeBuildInputs = [ coq.ocamlPackages.cppo ];
+  propagatedBuildInputs = [ coq-ext-lib coq.ocamlPackages.ocamlbuild ];
 
   doCheck = true;
   checkTarget = "test";
diff --git a/pkgs/development/coq-modules/smtcoq/default.nix b/pkgs/development/coq-modules/smtcoq/default.nix
index 0389b45fb5cdd..ebaebe6974e3e 100644
--- a/pkgs/development/coq-modules/smtcoq/default.nix
+++ b/pkgs/development/coq-modules/smtcoq/default.nix
@@ -13,9 +13,11 @@ mkCoqDerivation {
     { case = isEq "8.13"; out = "itp22"; }
   ] null;
 
-  propagatedBuildInputs = [ trakt cvc4 ] ++ lib.optionals (!stdenv.isDarwin) [ veriT ];
-  extraNativeBuildInputs = with coq.ocamlPackages; [ ocaml ocamlbuild ];
-  extraBuildInputs = with coq.ocamlPackages; [ findlib num zarith ];
+  propagatedBuildInputs = [ trakt cvc4 ]
+    ++ lib.optionals (!stdenv.isDarwin) [ veriT ]
+    ++ (with coq.ocamlPackages; [ num zarith ]);
+  mlPlugin = true;
+  nativeBuildInputs = with coq.ocamlPackages; [ ocamlbuild ];
 
   meta = {
     description = "Communication between Coq and SAT/SMT solvers ";
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 15f86f4defe45..66bdbe8f78f02 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -289,6 +289,7 @@ package-maintainers:
     - candid
     - leb128-cereal
     - tasty-expected-failure
+    - lhs2tex
   pacien:
     - ldgallery-compiler
   peti:
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index acfb2647ae421..23b4cfb7846c9 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -169845,6 +169845,7 @@ self: {
        ];
        description = "Preprocessor for typesetting Haskell sources with LaTeX";
        license = "GPL";
+       maintainers = with lib.maintainers; [ nomeata ];
      }) {};
 
   "lhslatex" = callPackage
diff --git a/pkgs/development/libraries/flatbuffers/1.12.nix b/pkgs/development/libraries/flatbuffers/1.12.nix
deleted file mode 100644
index 1ad490d3a01bc..0000000000000
--- a/pkgs/development/libraries/flatbuffers/1.12.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ callPackage, fetchpatch, lib, stdenv }:
-
-callPackage ./generic.nix {
-  version = "1.12.0";
-  sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
-
-  patches = [
-    (fetchpatch {
-      # Fixed a compilation error with GCC 10.0 to 11.0. June 1, 2020.
-      # Should be included in the next release after 1.12.0
-      url = "https://github.com/google/flatbuffers/commit/988164f6e1675bbea9c852e2d6001baf4d1fcf59.patch";
-      sha256 = "0d8c2bywqmkhdi0a41cry85wy4j58pl0vd6h5xpfqm3fr8w0mi9s";
-      excludes = [ "src/idl_gen_cpp.cpp" ];
-    })
-    (fetchpatch {
-      # Fixed a compilation error with GCC 10.0 to 11.0. July 6, 2020.
-      # Should be included in the next release after 1.12.0
-      url = "https://github.com/google/flatbuffers/pull/6020/commits/44c7a4cf439b0a298720b5a448bcc243a882b0c9.patch";
-      sha256 = "126xwkvnlc4ignjhxv9jygfd9j6kr1jx39hyk0ddpcmvzfqsccf4";
-    })
-  ];
-
-  preConfigure = lib.optionalString stdenv.buildPlatform.isDarwin ''
-    rm BUILD
-  '';
-}
diff --git a/pkgs/development/libraries/flatbuffers/2.0.nix b/pkgs/development/libraries/flatbuffers/2.0.nix
deleted file mode 100644
index 27b661ee09004..0000000000000
--- a/pkgs/development/libraries/flatbuffers/2.0.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ callPackage, fetchpatch }:
-
-callPackage ./generic.nix {
-  version = "2.0.0";
-  sha256 = "1zbf6bdpps8369r1ql00irxrp58jnalycc8jcapb8iqg654vlfz8";
-
-  patches = [
-    # Pull patch pending upstream inclustion for gcc-12 support:
-    #  https://github.com/google/flatbuffers/pull/6946
-    (fetchpatch {
-      name = "gcc-12.patch";
-      url = "https://github.com/google/flatbuffers/commit/17d9f0c4cf47a9575b4f43a2ac33eb35ba7f9e3e.patch";
-      sha256 = "0sksk47hi7camja9ppnjr88jfdgj0nxqxy8976qs1nx73zkgbpf9";
-    })
-  ];
-}
diff --git a/pkgs/development/libraries/flatbuffers/generic.nix b/pkgs/development/libraries/flatbuffers/default.nix
index c06dad87d9590..a6eefe77c460c 100644
--- a/pkgs/development/libraries/flatbuffers/generic.nix
+++ b/pkgs/development/libraries/flatbuffers/default.nix
@@ -1,25 +1,30 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
-, version
-, sha256
-, patches ? [ ]
-, preConfigure ? null
 }:
 
 stdenv.mkDerivation rec {
   pname = "flatbuffers";
-  inherit version;
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "flatbuffers";
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "1zbf6bdpps8369r1ql00irxrp58jnalycc8jcapb8iqg654vlfz8";
   };
 
-  inherit patches preConfigure;
+  patches = [
+    # Pull patch pending upstream inclustion for gcc-12 support:
+    # https://github.com/google/flatbuffers/pull/6946
+    (fetchpatch {
+      name = "gcc-12.patch";
+      url = "https://github.com/google/flatbuffers/commit/17d9f0c4cf47a9575b4f43a2ac33eb35ba7f9e3e.patch";
+      sha256 = "0sksk47hi7camja9ppnjr88jfdgj0nxqxy8976qs1nx73zkgbpf9";
+    })
+  ];
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index 7d50d2b53b1d6..b4d668d5fba17 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -25,7 +25,13 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-h7zcHCOxe1h7HRB6idtjf4HUBEoHC4V2pqbN9hpe00g=";
   };
 
-  nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp;
+  nativeBuildInputs = [
+    cmake
+  ] ++ lib.optionals stdenv.isDarwin [
+    llvmPackages.openmp
+  ] ++ lib.optionals cudaSupport [
+    cudaPackages.autoAddOpenGLRunpathHook
+  ];
 
   buildInputs = [ gtest ] ++ lib.optional cudaSupport cudaPackages.cudatoolkit
                 ++ lib.optional ncclSupport cudaPackages.nccl;
@@ -37,6 +43,12 @@ stdenv.mkDerivation rec {
 
   inherit doCheck;
 
+  # By default, cmake build will run ctests with all checks enabled
+  # If we're building with cuda, we run ctest manually so that we can skip the GPU tests
+  checkPhase = lib.optionalString cudaSupport ''
+    ctest --force-new-ctest-process ${lib.optionalString cudaSupport "-E TestXGBoostLib"}
+  '';
+
   installPhase = let
     libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
   in ''
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index 0770f3a48d484..cc84284251772 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, lib, fetchzip, buildDunePackage, camlp5
+{ stdenv, lib, fetchzip, bash
+, buildDunePackage, camlp5
 , re, perl, ncurses
 , ppxlib, ppx_deriving
 , ppxlib_0_15, ppx_deriving_0_15
+, coqPackages
 , version ? "1.14.1"
 }:
 with lib;
-let fetched = import ../../../build-support/coq/meta-fetch/default.nix
-  {inherit lib stdenv fetchzip; } ({
+let fetched = coqPackages.metaFetch ({
     release."1.14.1".sha256 = "sha256-BZPVL8ymjrE9kVGyf6bpc+GA2spS5JBpkUtZi04nPis=";
     release."1.13.7".sha256 = "10fnwz30bsvj7ii1vg4l1li5pd7n0qqmwj18snkdr5j9gk0apc1r";
     release."1.13.5".sha256 = "02a6r23mximrdvs6kgv6rp0r2dgk7zynbs99nn7lphw2c4189kka";
@@ -32,6 +33,11 @@ buildDunePackage rec {
      else [ ppxlib_0_15 ppx_deriving_0_15 ]
   );
 
+  patchPhase = ''
+    sed -e "s/SHELL:=/SHELL?=/" -i Makefile || true
+  '';
+  buildPhase = "SHELL=${bash} make build";
+
   meta = {
     description = "Embeddable λProlog Interpreter";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/php-packages/box/default.nix b/pkgs/development/php-packages/box/default.nix
index bc0f4ac636c69..97b9bbc0f11e0 100644
--- a/pkgs/development/php-packages/box/default.nix
+++ b/pkgs/development/php-packages/box/default.nix
@@ -1,14 +1,14 @@
 { mkDerivation, fetchurl, makeWrapper, lib, php }:
 let
   pname = "box";
-  version = "2.7.5";
+  version = "3.16.0";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchurl {
-    url = "https://github.com/box-project/box2/releases/download/${version}/box-${version}.phar";
-    sha256 = "1zmxdadrv0i2l8cz7xb38gnfmfyljpsaz2nnkjzqzksdmncbgd18";
+    url = "https://github.com/box-project/box/releases/download/${version}/box.phar";
+    sha256 = "sha256-9QjijzCdfpWjGb3NXxPc+7GOuRy3psrJtpvHeZ14vfk=";
   };
 
   dontUnpack = true;
@@ -27,7 +27,7 @@ mkDerivation {
   meta = with lib; {
     description = "An application for building and managing Phars";
     license = licenses.mit;
-    homepage = "https://box-project.github.io/box2/";
+    homepage = "https://github.com/box-project/box";
     maintainers = with maintainers; [ jtojnar ] ++ teams.php.members;
   };
 }
diff --git a/pkgs/development/php-packages/php-parallel-lint/default.nix b/pkgs/development/php-packages/php-parallel-lint/default.nix
index d0335142490ee..be1736b53910a 100644
--- a/pkgs/development/php-packages/php-parallel-lint/default.nix
+++ b/pkgs/development/php-packages/php-parallel-lint/default.nix
@@ -1,16 +1,16 @@
 { mkDerivation, fetchFromGitHub, makeWrapper, lib, php }:
 let
   pname = "php-parallel-lint";
-  version = "1.0.0";
+  version = "1.3.2";
 in
 mkDerivation {
   inherit pname version;
 
   src = fetchFromGitHub {
-    owner = "JakubOnderka";
+    owner = "php-parallel-lint";
     repo = "PHP-Parallel-Lint";
     rev = "v${version}";
-    sha256 = "16nv8yyk2z3l213dg067l6di4pigg5rd8yswr5xgd18jwbys2vnw";
+    sha256 = "sha256-pTHH19HwqyOj5pSmH7l0JlntNVtMdu4K9Cl+qyrrg9U=";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ mkDerivation {
   meta = with lib; {
     description = "Tool to check syntax of PHP files faster than serial check with fancier output";
     license = licenses.bsd2;
-    homepage = "https://github.com/JakubOnderka/PHP-Parallel-Lint";
+    homepage = "https://github.com/php-parallel-lint/PHP-Parallel-Lint";
     maintainers = with maintainers; [ jtojnar ] ++ teams.php.members;
   };
 }
diff --git a/pkgs/development/python-modules/atomman/default.nix b/pkgs/development/python-modules/atomman/default.nix
index 7e1738ad33ad4..cdef83e999e2b 100644
--- a/pkgs/development/python-modules/atomman/default.nix
+++ b/pkgs/development/python-modules/atomman/default.nix
@@ -13,6 +13,7 @@
 , pymatgen
 , pytest
 , pythonOlder
+, pythonAtLeast
 , requests
 , scipy
 , toolz
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   pname = "atomman";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.10";
 
   src = fetchFromGitHub {
     owner = "usnistgov";
@@ -57,8 +58,11 @@ buildPythonPackage rec {
   checkPhase = ''
     # pytestCheckHook doesn't work
     pytest tests -k "not test_rootdir and not test_version \
-      and not test_atomic_mass and not imageflags" \
-      --ignore tests/plot/test_interpolate.py
+      and not test_atomic_mass and not imageflags \
+      and not test_build_unit and not test_set_and_get_in_units \
+      and not test_set_literal and not test_scalar_model " \
+      --ignore tests/plot/test_interpolate.py \
+      --ignore tests/tools/test_vect_angle.py
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/boolean-py/default.nix b/pkgs/development/python-modules/boolean-py/default.nix
index dc1b1be0d81b2..3ac516e5e1b72 100644
--- a/pkgs/development/python-modules/boolean-py/default.nix
+++ b/pkgs/development/python-modules/boolean-py/default.nix
@@ -1,21 +1,36 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "boolean.py";
-  version = "3.8";
+  pname = "boolean-py";
+  version = "4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "bastikr";
     repo = "boolean.py";
     rev = "v${version}";
-    sha256 = "02jznrfrihhk69ai1vnh26s3rshl4kfc2id7li6xccavc2ws5y3b";
+    hash = "sha256-i6aNzGDhZip9YHXLiuh9crGm2qT2toBU2xze4PDLleg=";
   };
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "boolean"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/bastikr/boolean.py";
     description = "Implements boolean algebra in one module";
+    homepage = "https://github.com/bastikr/boolean.py";
     license = licenses.bsd2;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix
index 79260173c5475..1585d6d5e895c 100644
--- a/pkgs/development/python-modules/chainer/default.nix
+++ b/pkgs/development/python-modules/chainer/default.nix
@@ -8,7 +8,6 @@ buildPythonPackage rec {
   version = "7.8.1";
   disabled = !isPy3k; # python2.7 abandoned upstream
 
-  # no tests in Pypi tarball
   src = fetchFromGitHub {
     owner = "chainer";
     repo = "chainer";
@@ -16,11 +15,6 @@ buildPythonPackage rec {
     sha256 = "1n07zjzc4g92m1sbgxvnansl0z00y4jnhma2mw06vnahs7s9nrf6";
   };
 
-  checkInputs = [
-    pytestCheckHook
-    mock
-  ];
-
   propagatedBuildInputs = [
     filelock
     protobuf
@@ -28,11 +22,19 @@ buildPythonPackage rec {
     typing-extensions
   ] ++ lib.optionals cudaSupport [ cupy ];
 
+  checkInputs = [
+    pytestCheckHook
+    mock
+  ];
+
   pytestFlagsArray = [ "tests/chainer_tests/utils_tests" ];
 
-  # cf. https://github.com/chainer/chainer/issues/8621
   preCheck = ''
+    # cf. https://github.com/chainer/chainer/issues/8621
     export CHAINER_WARN_VERSION_MISMATCH=0
+
+    # ignore pytest warnings not listed
+    rm setup.cfg
   '';
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index a85cee778b0b7..b74827d1971dd 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -1,5 +1,8 @@
 { lib
+, stdenv
 , buildPythonPackage
+, pythonOlder
+, pythonAtLeast
 , fetchFromGitHub
 , pillow
 , libX11
@@ -11,26 +14,38 @@
 
 buildPythonPackage rec {
   pname = "clickgen";
-  version = "1.1.9";
+  version = "1.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
 
   src = fetchFromGitHub {
     owner = "ful1e5";
     repo = "clickgen";
     rev = "v${version}";
-    sha256 = "108f3sbramd3hhs4d84s3i3lbwllfrkvjakjq4gdmbw6xpilvm0l";
+    sha256 = "sha256-01c8SVy+J004dq5KCUe62w7i/xUTxTfl/IpvUtGQgw0=";
   };
 
   buildInputs = [ libXcursor libX11 libpng ];
 
   propagatedBuildInputs = [ pillow ];
 
-  pythonImportsCheck = [ "clickgen" ];
+  checkInputs = [ pytestCheckHook ];
+
+  postBuild = ''
+    # Needs to build xcursorgen.so
+    cd src/xcursorgen
+    make
+    cd ../..
+  '';
 
   postInstall = ''
-    install -m644 clickgen/xcursorgen.so $out/${python.sitePackages}/clickgen/xcursorgen.so
+    install -m644 src/xcursorgen/xcursorgen.so $out/${python.sitePackages}/clickgen/xcursorgen.so
+    # Copying scripts directory needed by clickgen script at $out/bin/
+    cp -R src/clickgen/scripts $out/${python.sitePackages}/clickgen/scripts
   '';
 
-  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "clickgen" ];
 
   meta = with lib; {
     homepage = "https://github.com/ful1e5/clickgen";
@@ -41,5 +56,8 @@ buildPythonPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ AdsonCicilioti ];
+    # fails with:
+    # ld: unknown option: -zdefs
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index dfae5ea249d2a..064c6f2b12ffc 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.3.1";
+  version = "2.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,8 +23,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "plotly";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-gsP/WbALUkO3AB0uuX/ByhzaeIDSUUE1Cb8Cnh4GEh0=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-7B1LEcEgUGJ/gDCDD4oURqli8I5YTJo9jl7l4E1aLVQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/datatable/default.nix b/pkgs/development/python-modules/datatable/default.nix
index 004e47a60b5cc..3d3279bb2b3e3 100644
--- a/pkgs/development/python-modules/datatable/default.nix
+++ b/pkgs/development/python-modules/datatable/default.nix
@@ -61,5 +61,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/h2oai/datatable";
     license = licenses.mpl20;
     maintainers = with maintainers; [ abbradar ];
+    # uses custom build system and adds -Wunused-variable -Werror
+    # warning: ‘dt::expr::doc_first’ defined but not used [-Wunused-variable]
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/dparse2/default.nix b/pkgs/development/python-modules/dparse2/default.nix
new file mode 100644
index 0000000000000..d3b61574cf8a0
--- /dev/null
+++ b/pkgs/development/python-modules/dparse2/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, toml
+, pyyaml
+, packaging
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dparse2";
+  version = "0.6.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = pname;
+    rev = version;
+    hash = "sha256-1tbNW7Gy7gvMnETdAM2ahHiwbhG9qvdYZggia1+7eGo=";
+  };
+
+  propagatedBuildInputs = [
+    toml
+    pyyaml
+    packaging
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Requries pipenv
+    "tests/test_parse.py"
+  ];
+
+  pythonImportsCheck = [
+    "dparse2"
+  ];
+
+  meta = with lib; {
+    description = "Module to parse Python dependency files";
+    homepage = "https://github.com/nexB/dparse2";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/eiswarnung/default.nix b/pkgs/development/python-modules/eiswarnung/default.nix
index 87ff2a4287ac6..8bea9552b35b6 100644
--- a/pkgs/development/python-modules/eiswarnung/default.nix
+++ b/pkgs/development/python-modules/eiswarnung/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "eiswarnung";
-  version = "1.0.0";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "klaasnicolaas";
     repo = "python-eiswarnung";
-    rev = "v${version}";
-    hash = "sha256-Cw/xRypErasdrOZJ/0dWLl4eYH01vBI9mYm98teIdRc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-fyxqVSZcbo/rrItad5ZTwmp4N8s0HGBdxvx3LBax/hc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ftputil/default.nix b/pkgs/development/python-modules/ftputil/default.nix
index e9e445f11c3dd..4cb2fe442d325 100644
--- a/pkgs/development/python-modules/ftputil/default.nix
+++ b/pkgs/development/python-modules/ftputil/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "ftputil";
-  version = "5.0.3";
+  version = "5.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-m4buZ8GYDOHYmxN1K8SLlJP+4GNJy0doKFlOduCPhIg=";
+    hash = "sha256-aInbhkndINm21ApsXw+EzPNAp9rB4L/A8AJAkPwq+zM=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 9ba7f9145e30f..6871296a763de 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.12.0";
+  version = "2.12.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5RoIpyVm/y2+6pN4mJPWHbVUwxH6yWI/vIuCVNJU2aw=";
+    hash = "sha256-mTphUjL61NwaE7vKDgeCv+0WeA15FNQzvnY/6fHZ/QU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/license-expression/default.nix b/pkgs/development/python-modules/license-expression/default.nix
index 5ed61931a7d8b..c6f2c678ba999 100644
--- a/pkgs/development/python-modules/license-expression/default.nix
+++ b/pkgs/development/python-modules/license-expression/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "license-expression";
-  version = "21.6.14";
+  version = "30.0.0";
 
   disabled = pythonOlder "3.6";
 
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "nexB";
     repo = "license-expression";
     rev = "v${version}";
-    sha256 = "sha256-hwfYKKalo8WYFwPCsRRXNz+/F8/42PXA8jxbIQjJH/g=";
+    hash = "sha256-tGXNZm9xH8sXa7dtBFsTzGgT+hfbmkwps7breR7KUWU=";
   };
 
   dontConfigure = true;
@@ -34,10 +34,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "license_expression" ];
+  pythonImportsCheck = [
+    "license_expression"
+  ];
 
   meta = with lib; {
-    description = "Utility library to parse, normalize and compare License expressions for Python";
+    description = "Utility library to parse, normalize and compare License expressions";
     homepage = "https://github.com/nexB/license-expression";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/mapbox/default.nix b/pkgs/development/python-modules/mapbox/default.nix
index f721228ddca4c..84ca6199e2f40 100644
--- a/pkgs/development/python-modules/mapbox/default.nix
+++ b/pkgs/development/python-modules/mapbox/default.nix
@@ -32,5 +32,8 @@ buildPythonPackage rec {
     description = "Mapbox SDK for Python";
     longDescription = "Low-level client API for Mapbox web services.";
     maintainers = with maintainers; [ ersin ];
+    # ImportError: cannot import name 'Mapping' from 'collections'
+    # and archived upstreamed
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/name-that-hash/default.nix b/pkgs/development/python-modules/name-that-hash/default.nix
new file mode 100644
index 0000000000000..de073e502dc8f
--- /dev/null
+++ b/pkgs/development/python-modules/name-that-hash/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, click
+, rich
+}:
+
+buildPythonPackage rec {
+  pname = "name-that-hash";
+  version = "1.10";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "HashPals";
+    repo = pname;
+    rev = version;
+    hash = "sha256-3sddUPoC3NfKQzmNgqPf/uHaYN9VZBqsmV712uz1Phg=";
+  };
+
+  # TODO remove on next update which bumps rich
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace 'rich = ">=9.9,<11.0"' 'rich = ">=9.9"'
+  '';
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    click
+    rich
+  ];
+
+  pythonImportsCheck = [ "name_that_hash" ];
+
+  meta = with lib; {
+    longDescription = "Don't know what type of hash it is? Name That Hash will name that hash type! Identify MD5, SHA256 and 300+ other hashes.";
+    description = "Module and CLI for the identification of hashes";
+    homepage = "https://github.com/HashPals/Name-That-Hash";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ eyjhb ];
+  };
+}
diff --git a/pkgs/development/python-modules/napalm/default.nix b/pkgs/development/python-modules/napalm/default.nix
index 2266283cc53bd..ef59a33a956a3 100644
--- a/pkgs/development/python-modules/napalm/default.nix
+++ b/pkgs/development/python-modules/napalm/default.nix
@@ -1,10 +1,14 @@
 { lib, buildPythonPackage, fetchFromGitHub, callPackage, setuptools, cffi
 , paramiko, requests, future, textfsm, jinja2, netaddr, pyyaml, pyeapi, netmiko
-, junos-eznc, ciscoconfparse, scp, lxml, ncclient, pytestCheckHook, ddt, mock }:
+, junos-eznc, ciscoconfparse, scp, lxml, ncclient, pytestCheckHook, ddt, mock
+, pythonOlder, pythonAtLeast }:
 
 buildPythonPackage rec {
   pname = "napalm";
   version = "3.3.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.9";
 
   src = fetchFromGitHub {
     owner = "napalm-automation";
diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix
index 586af7a904233..31fd824ee3da4 100644
--- a/pkgs/development/python-modules/nose/default.nix
+++ b/pkgs/development/python-modules/nose/default.nix
@@ -41,8 +41,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "A unittest-based testing framework for python that makes writing and running tests easier";
-    homepage = "http://readthedocs.org/docs/nose/";
+    homepage = "https://nose.readthedocs.io/";
     license = licenses.lgpl3;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index e2f2f565862ff..d056965281236 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -8,6 +8,7 @@
 , click
 , setuptools-scm
 , pep517
+, stdenv
 }:
 
 buildPythonPackage rec {
@@ -26,6 +27,11 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
+  preCheck = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+    # https://github.com/python/cpython/issues/74570#issuecomment-1093748531
+    export no_proxy='*';
+  '';
+
   nativeBuildInputs = [
     setuptools-scm
   ];
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 6bbcd9d78cc38..b2c8bef9d4955 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.18.1";
+  version = "0.18.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-jdRwaw5hPP8VCmCp3l5idjzrHJ2vLhYpC6yPCmOF56Y=";
+    sha256 = "sha256-l97GF5dZlwps2mhw84A+8IBmTmvnaJ/5MeWYdeAu4Zw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/puremagic/default.nix b/pkgs/development/python-modules/puremagic/default.nix
index e5d91f38fa2f0..fbc1bd69370e1 100644
--- a/pkgs/development/python-modules/puremagic/default.nix
+++ b/pkgs/development/python-modules/puremagic/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "puremagic";
-  version = "1.12";
+  version = "1.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jAuuwImSExc2KjD6yi6WeMkdXpfOAE3Gp8HGaeBUeDg=";
+    sha256 = "sha256-yaHw/pOqWLUtYoM3l/JB0JToLXdi04n0BSccRdbCVDw=";
   };
 
   # test data not included on pypi
diff --git a/pkgs/development/python-modules/python-rabbitair/default.nix b/pkgs/development/python-modules/python-rabbitair/default.nix
new file mode 100644
index 0000000000000..7ebc98426d99d
--- /dev/null
+++ b/pkgs/development/python-modules/python-rabbitair/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, buildPythonPackage
+, cryptography
+, fetchFromGitHub
+, pytest-asyncio
+, pytestCheckHook
+, pythonOlder
+, typing-extensions
+, zeroconf
+}:
+
+buildPythonPackage rec {
+  pname = "python-rabbitair";
+  version = "0.0.8";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "rabbit-air";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-CGr7NvnGRNTiKq5BpB/zmfgyd/2ggTbO0nj+Q+MavTs=";
+  };
+
+  propagatedBuildInputs = [
+    cryptography
+    zeroconf
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
+
+  checkInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "rabbitair"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_info"
+    "test_no_response"
+    "test_protocol_error"
+    "test_sequential_requests"
+    "test_set_state"
+    "test_state_a2"
+    "test_state_a3"
+    "test_zeroconf"
+  ];
+
+  meta = with lib; {
+    description = "Module for the control of Rabbit Air air purifiers";
+    homepage = "https://github.com/rabbit-air/python-rabbitair";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rflink/default.nix b/pkgs/development/python-modules/rflink/default.nix
index c33d44f628fbc..fa6f44ef616e0 100644
--- a/pkgs/development/python-modules/rflink/default.nix
+++ b/pkgs/development/python-modules/rflink/default.nix
@@ -8,6 +8,7 @@
 , pyserial-asyncio
 , setuptools
 , pytestCheckHook
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -34,6 +35,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
+    # https://github.com/aequitas/python-rflink/issues/65
+    "tests/test_proxy.py"
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "version=version_from_git()" "version='${version}'"
diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix
index d2c32fc138afe..e86b384f9c4a5 100644
--- a/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/pkgs/development/python-modules/scikit-bio/default.nix
@@ -5,6 +5,7 @@
 , lockfile
 , cachecontrol
 , decorator
+, h5py
 , ipython
 , matplotlib
 , natsort
@@ -19,18 +20,18 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.5.6";
+  version = "0.5.7";
   pname = "scikit-bio";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48b73ec53ce0ff2c2e3e05f3cfcf93527c1525a8d3e9dd4ae317b4219c37f0ea";
+    sha256 = "sha256-Y0PKDGIeL8xdHAQsi+MgBmTFMllWqDvqdRzxvMddHak=";
   };
 
-  buildInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
   checkInputs = [ coverage ];
-  propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy hdmedians scikit-learn ];
+  propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy h5py hdmedians scikit-learn ];
 
   # cython package not included for tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index b368db45bf707..1a6c5c1418d0b 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -42,7 +42,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.5.11";
+  version = "1.5.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -51,7 +51,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    hash = "sha256-2WN18hzOn/gomNvQNbm9R8CcxN6G1XxoodBHqsG6es0=";
+    hash = "sha256-8M0FWfvaGp74Fb+qJlhyiJPUVHN2ZdEleZf27d+bftE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 8d5d0d2aa4f5b..49f5dcc822b60 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "Shapely";
-  version = "1.8.1.post1";
+  version = "1.8.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-k/8G/wX74r6EO5PHsa2CkuVuZlugG0cI91rop1eXLp8=";
+    sha256 = "sha256-Vyr51QBv1eMhPjfuVIkSsDQfsmck1tyKTjlQwQGX67Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/shapely/library-paths.patch b/pkgs/development/python-modules/shapely/library-paths.patch
index 484af67ef68cc..d095eada9d6e1 100644
--- a/pkgs/development/python-modules/shapely/library-paths.patch
+++ b/pkgs/development/python-modules/shapely/library-paths.patch
@@ -1,201 +1,31 @@
 diff --git a/shapely/geos.py b/shapely/geos.py
-index 13ab835..1abdb5e 100644
+index 88c5f53..1ccd6e4 100644
 --- a/shapely/geos.py
 +++ b/shapely/geos.py
-@@ -55,174 +55,21 @@ def load_dll(libname, fallbacks=None, mode=DEFAULT_MODE):
-             "Could not find lib {} or load any of its variants {}.".format(
-                 libname, fallbacks or []))
+@@ -96,6 +96,7 @@ if sys.platform.startswith('linux'):
+         alt_paths = [
+             'libgeos_c.so.1',
+             'libgeos_c.so',
++            '@libgeos_c@',
+         ]
+         _lgeos = load_dll('geos_c', fallbacks=alt_paths)
  
--_lgeos = None
- def exists_conda_env():
-     """Does this module exist in a conda environment?"""
-     return os.path.exists(os.path.join(sys.prefix, 'conda-meta'))
+@@ -160,6 +161,7 @@ elif sys.platform == 'darwin':
+             "/usr/local/lib/libgeos_c.dylib",
+             # homebrew Apple Silicon
+             "/opt/homebrew/lib/libgeos_c.dylib",
++            "@libgeos_c@",
+         ]
+         _lgeos = load_dll('geos_c', fallbacks=alt_paths)
  
--
--if sys.platform.startswith('linux'):
--    # Test to see if we have a wheel repaired by auditwheel which contains its
--    # own libgeos_c. Note: auditwheel 3.1 changed the location of libs.
--    geos_whl_so = glob.glob(
--        os.path.abspath(os.path.join(os.path.dirname(__file__), ".libs/libgeos*.so*"))
--    ) or glob.glob(
--        os.path.abspath(
--            os.path.join(
--                os.path.dirname(__file__), "..", "Shapely.libs", "libgeos*.so*"
--            )
--        )
--    )
--
--    if len(geos_whl_so) > 0:
--        # We have observed problems with CDLL of libgeos_c not automatically
--        # loading the sibling c++ library since the change made by auditwheel
--        # 3.1, so we explicitly load them both.
--        geos_whl_so = sorted(geos_whl_so)
--        CDLL(geos_whl_so[0])
--        _lgeos = CDLL(geos_whl_so[-1])
--        LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
--
--    elif hasattr(sys, 'frozen'):
--        geos_pyinstaller_so = glob.glob(os.path.join(sys.prefix, 'libgeos_c-*.so.*'))
--        if len(geos_pyinstaller_so) >= 1:
--            _lgeos = CDLL(geos_pyinstaller_so[0])
--            LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
--    elif exists_conda_env():
--        # conda package.
--        _lgeos = CDLL(os.path.join(sys.prefix, 'lib', 'libgeos_c.so'))
--    else:
--        alt_paths = [
--            'libgeos_c.so.1',
--            'libgeos_c.so',
--        ]
--        _lgeos = load_dll('geos_c', fallbacks=alt_paths)
--
-+_lgeos = CDLL('@libgeos_c@')
-+if sys.platform == 'darwin':
-     # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen
-     # manpage says, "If filename is NULL, then the returned handle is for the
-     # main program". This way we can let the linker do the work to figure out
-     # which libc Python is actually using.
-     free = CDLL(None).free
--    free.argtypes = [c_void_p]
--    free.restype = None
--
--elif sys.platform == 'darwin':
--    # Test to see if we have a delocated wheel with a GEOS dylib.
--    dylib_path = os.path.abspath(
--        os.path.join(os.path.dirname(__file__), ".dylibs/*.dylib")
--    )
--    LOG.debug("Formed path for globbing: dylib_path=%r", dylib_path)
--
--    geos_whl_dylib = glob.glob(dylib_path)
--    LOG.debug("Globbed: geos_whl_dylib=%r", geos_whl_dylib)
--
--    if len(geos_whl_dylib) > 0:
--        handle = CDLL(None)
--        if hasattr(handle, "initGEOS_r"):
--            LOG.debug("GEOS already loaded")
--            _lgeos = handle
--        else:
--            geos_whl_dylib = sorted(geos_whl_dylib)
--            CDLL(geos_whl_dylib[0])
--            _lgeos = CDLL(geos_whl_dylib[-1])
--            LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
--
--    elif exists_conda_env():
--        # conda package.
--        _lgeos = CDLL(os.path.join(sys.prefix, 'lib', 'libgeos_c.dylib'))
--    else:
--        if hasattr(sys, 'frozen'):
--            try:
--                # .app file from py2app
--                alt_paths = [os.path.join(
--                    os.environ['RESOURCEPATH'], '..', 'Frameworks',
--                    'libgeos_c.dylib')]
--            except KeyError:
--                alt_paths = [
--                    # binary from pyinstaller
--                    os.path.join(sys.executable, 'libgeos_c.dylib'),
--                    # .app from cx_Freeze
--                    os.path.join(os.path.dirname(sys.executable), 'libgeos_c.1.dylib')]
--                if hasattr(sys, '_MEIPASS'):
--                    alt_paths.append(
--                        os.path.join(sys._MEIPASS, 'libgeos_c.1.dylib'))
--        else:
--            alt_paths = [
--                # The Framework build from Kyng Chaos
--                "/Library/Frameworks/GEOS.framework/Versions/Current/GEOS",
--                # macports
--                '/opt/local/lib/libgeos_c.dylib',
--                # homebrew Intel
--                '/usr/local/lib/libgeos_c.dylib',
--                # homebrew Apple Silicon
--                '/opt/homebrew/lib/libgeos_c.dylib',
--            ]
--        _lgeos = load_dll('geos_c', fallbacks=alt_paths)
--
--    free = CDLL(None).free
--    free.argtypes = [c_void_p]
--    free.restype = None
--
--elif sys.platform == 'win32':
--    _conda_dll_path = os.path.join(sys.prefix, 'Library', 'bin', 'geos_c.dll')
--    if exists_conda_env() and os.path.exists(_conda_dll_path):
--        _lgeos = CDLL(_conda_dll_path)
--    else:
--        geos_whl_dll = glob.glob(
--            os.path.abspath(
--                os.path.join(
--                    os.path.dirname(__file__), "..", "Shapely.libs", "geos*.dll"
--                )
--            )
--        )
--
--        if len(geos_whl_dll) > 0:
--            geos_whl_dll = sorted(geos_whl_dll)
--            # CDLL(geos_whl_so[0])
--            _lgeos = CDLL(geos_whl_dll[-1])
--            LOG.debug("Found GEOS DLL: %r, using it.", _lgeos)
--        else:
--            try:
--                egg_dlls = os.path.abspath(
--                    os.path.join(os.path.dirname(__file__), "DLLs")
--                )
--                if hasattr(sys, "_MEIPASS"):
--                    wininst_dlls = sys._MEIPASS
--                elif hasattr(sys, "frozen"):
--                    wininst_dlls = os.path.normpath(
--                        os.path.abspath(sys.executable + "../../DLLS")
--                    )
--                else:
--                    wininst_dlls = os.path.abspath(os.__file__ + "../../../DLLs")
--                original_path = os.environ["PATH"]
--                os.environ["PATH"] = "%s;%s;%s" % (
--                    egg_dlls,
--                    wininst_dlls,
--                    original_path,
--                )
--                _lgeos = load_dll("geos_c.dll")
--
--            except (ImportError, WindowsError, OSError):
--                raise
--
--        def free(m):
--            try:
--                cdll.msvcrt.free(m)
--            except WindowsError:
--                # XXX: See http://trac.gispython.org/projects/PCL/ticket/149
--                pass
--
--elif sys.platform == 'sunos5':
--    _lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
--    free.restype = None
--    free.argtypes = [c_void_p]
--    free.restype = None
--
--else:  # other *nix systems
--    _lgeos = load_dll('geos_c', fallbacks=['libgeos_c.so.1', 'libgeos_c.so'])
--    free = CDLL(None).free
--    free.argtypes = [c_void_p]
--    free.restype = None
-+else:
-+    free = CDLL('@libc@').free
-+free.argtypes = [c_void_p]
-+free.restype = None
- 
- 
- def _geos_version():
 diff --git a/tests/test_dlls.py b/tests/test_dlls.py
-index c71da8e..fae9da6 100644
+index c71da8e..c36262c 100644
 --- a/tests/test_dlls.py
 +++ b/tests/test_dlls.py
-@@ -12,10 +12,4 @@ class LoadingTestCase(unittest.TestCase):
-     @unittest.skipIf(sys.platform == "win32", "FIXME: adapt test for win32")
-     def test_fallbacks(self):
-         load_dll('geos_c', fallbacks=[
--            os.path.join(sys.prefix, "lib", "libgeos_c.dylib"), # anaconda (Mac OS X)
--            '/opt/local/lib/libgeos_c.dylib',     # MacPorts
--            '/usr/local/lib/libgeos_c.dylib',     # homebrew (Mac OS X)
--            '/opt/homebrew/lib/libgeos_c.dylib',  # homebrew (macOS)
--            os.path.join(sys.prefix, "lib", "libgeos_c.so"), # anaconda (Linux)
--            'libgeos_c.so.1',
+@@ -18,4 +18,5 @@ class LoadingTestCase(unittest.TestCase):
+             '/opt/homebrew/lib/libgeos_c.dylib',  # homebrew (macOS)
+             os.path.join(sys.prefix, "lib", "libgeos_c.so"), # anaconda (Linux)
+             'libgeos_c.so.1',
 -            'libgeos_c.so'])
++            'libgeos_c.so',
 +            '@libgeos_c@'])
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 50f4c1c004b91..3c35544e9b341 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,13 +32,13 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.1132";
+  version = "2.0.1136";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-jy6a421lOfNGhxEuCOw+0JRD9RH7XJFP0dxhN0taKmk=";
+    hash = "sha256-J9ZY0Sy8XWSQ4l1uTeZq3PATVyHXs2tmX/VOUzZKak4=";
   };
 
   nativeBuildInputs = with py.pkgs; [
diff --git a/pkgs/development/tools/kdash/default.nix b/pkgs/development/tools/kdash/default.nix
index 90bd304c87c30..daa07f1ceed62 100644
--- a/pkgs/development/tools/kdash/default.nix
+++ b/pkgs/development/tools/kdash/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , rustPlatform
 , pkg-config
@@ -6,6 +7,7 @@
 , python3
 , openssl
 , xorg
+, AppKit
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -21,7 +23,8 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ perl python3 pkg-config ];
 
-  buildInputs = [ openssl xorg.xcbutil ];
+  buildInputs = [ openssl xorg.xcbutil ]
+    ++ lib.optional stdenv.isDarwin AppKit;
 
   cargoSha256 = "0nb554y8r7gvw7ls6gnrg98xxbws0mc6zdsc6ss3p2x9z8xwx204";
 
diff --git a/pkgs/development/tools/misc/libtree/default.nix b/pkgs/development/tools/misc/libtree/default.nix
index f852b7ea7adfd..141ccc24c36eb 100644
--- a/pkgs/development/tools/misc/libtree/default.nix
+++ b/pkgs/development/tools/misc/libtree/default.nix
@@ -13,39 +13,25 @@
 
 stdenv.mkDerivation rec {
   pname = "libtree";
-  version = "2.0.0";
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "haampie";
     repo = "libtree";
     rev = "v${version}";
-    sha256 = "sha256-j54fUwMkX4x4MwL8gMraguK9GqQRBjCC+W6ojFnQdHQ=";
+    sha256 = "sha256-C5QlQsBL9Als80Tv13ex2XS5Yj50Ht8eDfGYAtnh/HI=";
   };
 
-  patches = [
-    # add missing include
-    # https://github.com/haampie/libtree/pull/42
-    (fetchpatch {
-      url = "https://github.com/haampie/libtree/commit/219643ff6edcae42c9546b8ba38cfec9d19b034e.patch";
-      sha256 = "sha256-vdFmmBdBiOT3QBcwd3SuiolcaFTFAb88kU1KN8229K0=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace src/main.cpp \
-      --replace "std::string strip = \"strip\";" "std::string strip = \"${binutils}/bin/strip\";" \
-      --replace "std::string chrpath = \"chrpath\";" "std::string chrpath = \"${chrpath}/bin/chrpath\";"
-  '';
-
-  nativeBuildInputs = [ cmake ];
-
   buildInputs = [ cxxopts elfio termcolor ];
 
-  doCheck = true;
+  makeFlags = [ "PREFIX=$(out)" ];
 
+  # note: "make check" returns exit code 0 even when the tests fail.
+  # This has been reported upstream:
+  #  https://github.com/haampie/libtree/issues/77
   checkInputs = [ gtest ];
-
-  cmakeFlags = [ "-DLIBTREE_BUILD_TESTS=ON" ];
+  checkTarget = [ "check" ];
+  doCheck = true;
 
   meta = with lib; {
     description = "Tree ldd with an option to bundle dependencies into a single folder";
diff --git a/pkgs/development/tools/parsing/tree-sitter/default.nix b/pkgs/development/tools/parsing/tree-sitter/default.nix
index e3d74600c9550..441dc4988f520 100644
--- a/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -166,6 +166,6 @@ rustPlatform.buildRustPackage {
       * Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ Profpatsch ];
+    maintainers = with maintainers; [ Profpatsch oxalica ];
   };
 }
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
index e2cfb0944dd34..45224eb7a734b 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-c-sharp.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-c-sharp",
-  "rev": "5b6ae1f88e741b9ed738891ad1362fb9f2041671",
-  "date": "2022-03-23T15:50:46-04:00",
-  "path": "/nix/store/n5kjbimssqrwz7h99gq83935432dpm5s-tree-sitter-c-sharp",
-  "sha256": "1yp1lyzay7hxlgca2r5yigpdy80vli4f48k2bm3h2rpa99fczmrb",
+  "rev": "fcb2b6f7cb8ab8584d390aa266b0d2df7cbd1fd5",
+  "date": "2022-05-01T16:44:38+01:00",
+  "path": "/nix/store/5kwbva55mi975kqkjrw3jya98cb8i07d-tree-sitter-c-sharp",
+  "sha256": "0xdbh1n1mnglfxn16can69c3sr4ibc37v85vh7ckljcjgqhikfi9",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dart.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dart.json
index 6d79d851fd4d7..c222e1faf7d07 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dart.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-dart.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/usernobody14/tree-sitter-dart",
-  "rev": "6a25376685d1d47968c2cef06d4db8d84a70025e",
-  "date": "2021-06-04T09:39:40-06:00",
-  "path": "/nix/store/vdygn1702kn92k222kygk9i50h10z9km-tree-sitter-dart",
-  "sha256": "0z06sphmgjggx5j2rjfy3f85fh1m9s79sql8a7d4kvsamz9rwakl",
+  "rev": "f95876f0ed3ef207bbd3c5c41987bc2e9cecfc97",
+  "date": "2022-05-07T10:16:06-07:00",
+  "path": "/nix/store/aad6q85ni1rp22jkc0n8mhlhjq7pm794-tree-sitter-dart",
+  "sha256": "0iaa37g5z927dvlxla0nidl9n2hvpsw97b5ffi7w1hq9d4m6rc7i",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
index 2f673c7172cea..abf03571fdbdb 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elixir.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/elixir-lang/tree-sitter-elixir",
-  "rev": "ec1c4cac1b2f0290c53511a72fbab17c47815d2b",
-  "date": "2022-04-18T23:16:26+02:00",
-  "path": "/nix/store/2jmkl3lxq6cy0cg4wjf3hgjciw0xsm0y-tree-sitter-elixir",
-  "sha256": "0xiprldyfqpx5fil1b1kbnpj57n7j15j3m8dhibhif7azbd1z1y3",
+  "rev": "5d0c1bfcdf8aaad225525acad930a972b319a675",
+  "date": "2022-04-28T11:17:48-05:00",
+  "path": "/nix/store/a3vks004yjn7pb80nppdyq0k18wm3myc-tree-sitter-elixir",
+  "sha256": "1iff2gk6r6qa13imizxawc4hjwwwsnvhvhafcwab2q2476gk82mz",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
index ca9760bb7e268..53f67d645e7dd 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-go.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-go",
-  "rev": "c8fed1f0847a65a04a4b8cb7655f5f416e0742ca",
-  "date": "2022-03-29T10:06:48+02:00",
-  "path": "/nix/store/f9vy5q9p3rf2dcp7zdw9708j138ibi36-tree-sitter-go",
-  "sha256": "0yi8h1q39hsdxp9053by9xkl53wn229fhwjrrzml7k8y95qgnsyd",
+  "rev": "372d3241b099e189406475a9445cbb29dac2e054",
+  "date": "2022-04-28T20:49:46+02:00",
+  "path": "/nix/store/ylm4blh7lw1ac3ym9i69gbbs1cc5vmcs-tree-sitter-go",
+  "sha256": "0cmw37lgpfrw82kg9mcx7kgxnnvdydagbwckqv418zbh2xv881jf",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
index e1d4462e225d9..27e64896387ed 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-haskell",
-  "rev": "ed976b81b00ce7b72b99bca75e7a616cc526220c",
-  "date": "2022-03-20T00:05:14+01:00",
-  "path": "/nix/store/wzkfkix4q3vcrlsj2v4q32ihw0vdp1li-tree-sitter-haskell",
-  "sha256": "19g5f59gh6s4xpphrppmrqlh0nfld0q8zffy85pkby4gd6xh73zm",
+  "rev": "ff5c879d9b75f4e6930d7f687d458f707945ad78",
+  "date": "2022-05-07T17:45:16+02:00",
+  "path": "/nix/store/2pnp7kazxg1sp0anf4by99f27d7z0p64-tree-sitter-haskell",
+  "sha256": "0aa960150wli4hnv64jrl4gqvlgchc3y44bx4d7i53ygn9cdkl12",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
index 211e170adcedc..80034c7cd4195 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-html.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-html",
-  "rev": "161a92474a7bb2e9e830e48e76426f38299d99d1",
-  "date": "2021-08-17T11:20:56-07:00",
-  "path": "/nix/store/pv8x73j4sbngsqplwfm73jlpwc31mc17-tree-sitter-html",
-  "sha256": "1gwvgwk0py09pp65vnga522l5r16dvgwxsc76fg66y07k2i63cfk",
+  "rev": "29f53d8f4f2335e61bf6418ab8958dac3282077a",
+  "date": "2022-05-06T09:01:49-07:00",
+  "path": "/nix/store/w5dy2r99rbzpmg0icwil5j9cp37l9hkk-tree-sitter-html",
+  "sha256": "0wadphmgndj4vq9mg258624pj0klspbpcx8qlc6f8by5xbshvkmz",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
index 42bd6f10771ad..17a9695eed4bb 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-java.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-java",
-  "rev": "e7cb801ef57f74db5c4ebe14df74de852bb451b5",
-  "date": "2022-04-16T15:36:51+02:00",
-  "path": "/nix/store/55br93464adchwwjwdqjai8ppykwh098-tree-sitter-java",
-  "sha256": "0w27xk9j7mm9gr5aiwcv6cgfvzfnps0l9b09mwfqxhndh7j96vfn",
+  "rev": "39a11c8330d0b2ad75310456c378396785f79a4e",
+  "date": "2022-04-28T20:50:54+02:00",
+  "path": "/nix/store/w2hi6yvm3z4cy3bignphb9c2gf6fpnnq-tree-sitter-java",
+  "sha256": "0im81m2wb35n7rgmraf7p5ql6lvr7m9y4krgmkvgqkxnbkw7zcr0",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
index 5b7e511efb19a..c06fe54ca044f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/latex-lsp/tree-sitter-latex",
-  "rev": "8c5d90e78fa58ee6acab465ffa9a53e8b7b2c69c",
-  "date": "2022-04-23T15:10:18+02:00",
-  "path": "/nix/store/qpc37mjsl75qnmyzbkw6azphwzfdr9n9-tree-sitter-latex",
-  "sha256": "1xq5g34g9sqshhpprakc4k5lrlgg1n8vb7d7nfrx4ilrz5s0kks1",
+  "rev": "3b370b5ca3948312738b4f27b2a12e4bb58907a2",
+  "date": "2022-05-11T20:22:05+02:00",
+  "path": "/nix/store/l1nja32pv92awd5jnksi3wfd29mqxvkd-tree-sitter-latex",
+  "sha256": "0a4ks4ng02qivxr7h1izhc55791czba2r82ngi7a9l0smdxa9yv7",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
index a60bf1dffc6b6..f33e3022acefb 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-markdown.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/MDeiml/tree-sitter-markdown",
-  "rev": "d24196f9b3e5af6fcb2ec2a0b6cbc5c06f58b85e",
-  "date": "2022-03-30T11:47:57+02:00",
-  "path": "/nix/store/rdac46kl274bdd18bdrdh33s71sin7xd-tree-sitter-markdown",
-  "sha256": "07i3zwjla74s61w39fqfmb5a61dw6xlgfagh70p1rpvyrpxsywds",
+  "rev": "6d112e7a9c1694504bb78ee0b92dcd509625e0df",
+  "date": "2022-04-26T12:23:01+02:00",
+  "path": "/nix/store/598nrwznzg37r9pskrmzwnhrw3f4knnw-tree-sitter-markdown",
+  "sha256": "03d601dp65p30c88p0r6rx13wlkbg1q3ch11wfn4sa2rhba8zpyk",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
index c9b0ce8fcbb31..d29613cc207ef 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-org-nvim.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/milisims/tree-sitter-org",
-  "rev": "fab7af32a2719091df5b222f98099c566859de78",
-  "date": "2022-04-07T16:00:06-04:00",
-  "path": "/nix/store/b17cvbkdvv7d3dzbi58lgrqsnhvh79d8-tree-sitter-org",
-  "sha256": "0jz69wm1ay84zkslbcp4l906ay7l4jd3bi1k1ivclpx493pg8ia7",
+  "rev": "aeacac619457a187bb202b9dfc58541232ed4a25",
+  "date": "2022-05-02T16:54:48-04:00",
+  "path": "/nix/store/y06b3jf6mfgbx4ar9l8crd7r5vljln92-tree-sitter-org",
+  "sha256": "03g52pbnv859wy3sdbr0i440il98idj6zg0q12g7ccxxmwblwxig",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index c1bc94c210a1a..49b6c3c805653 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "3c17a28da38afac41332d3ce79bbd8951867f346",
-  "date": "2022-03-29T09:09:35-07:00",
-  "path": "/nix/store/7dmygp3gi9ch00mf59d7g2l8k6f2pl81-tree-sitter-php",
-  "sha256": "06xc4y67pl96h1gfh9zg4yxdgqj5mv7md28m78gix8sk1h011irq",
+  "rev": "6be89d517d550a47b067b23d0f89a364091b41ca",
+  "date": "2022-05-04T13:05:38-04:00",
+  "path": "/nix/store/pd19zya0sng7dahwgkamk51s1mprg9hf-tree-sitter-php",
+  "sha256": "18yrmvxajcg7m8xqpdkdllm9grs4m9pp4y058ky6q3drq7cx0v1m",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
index cf72f03519cd1..6e27d64bec74c 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-pug.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/zealot128/tree-sitter-pug",
-  "rev": "5875f9a7d94836708119b0a1102bb5792e8bf673",
-  "date": "2021-07-13T22:48:45+02:00",
-  "path": "/nix/store/3bwj01nmxkd4cmvjyrfv2a6wq07hbqig-tree-sitter-pug",
-  "sha256": "1sjw632yidi8dq34g1nqmld9861j40qnrlg4c8w478kl8hmhnvmb",
+  "rev": "63e214905970e75f065688b1e8aa90823c3aacdc",
+  "date": "2022-05-05T14:29:30+02:00",
+  "path": "/nix/store/8nwqja3ff6cmy06sgxx6wzlbg7qx6x1r-tree-sitter-pug",
+  "sha256": "1r3zhz4adfpg2ihlbdfx4nb9svv6apnlahgfqqzmacj3bm8r3wmp",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
index d1a73a02c0b43..66359662e7c63 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-ql.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-ql",
-  "rev": "8e7fd7e638d4a0ec7a792ee16b19dbc6407aa810",
-  "date": "2021-06-02T18:46:47+02:00",
-  "path": "/nix/store/yhyi9y09shv1fm87gka43vnv9clvyd92-tree-sitter-ql",
-  "sha256": "0x5f9989ymqvw3g8acckyk4j7zpmnc667qishbgly9icl9rkmv7w",
+  "rev": "b2c2364e833cc9f1afa243ac367f1475330fef63",
+  "date": "2022-05-04T13:16:04-04:00",
+  "path": "/nix/store/8c01j930llm5wacj2727k8igwwyhbcz4-tree-sitter-ql",
+  "sha256": "1a4k4rmyqqcj94y57sf2h27bbkn921p1ifl2xwcqpmk6dr6n5bbr",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
index 670103d5c78d2..36508dc4769c9 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rust.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-rust",
-  "rev": "0509e440ae042db6483984b3a56b3c5f24b5d9b9",
-  "date": "2022-03-09T12:11:47+01:00",
-  "path": "/nix/store/9jrsqsrql5wlbzmqna111w4a02hf75z2-tree-sitter-rust",
-  "sha256": "1r8n8441b8bppizlzh4xw7yy3amz4apfxpqxm8hw0n3j3iwnw4pz",
+  "rev": "9a6d980afbb9864405426f1b3905fbcd459871ca",
+  "date": "2022-05-09T16:14:09-07:00",
+  "path": "/nix/store/h5zks31j4xj7vw5ygqhbml0ydsly7l6z-tree-sitter-rust",
+  "sha256": "0hmamkb2hqrp67b756ckifbwdbr0yw7qr2m8farh0bg7rbi5c6z1",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index bf15e656e914f..4cdaa55dd2866 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "ec6047f531e7d4c13787d4ff208b94a84de34165",
-  "date": "2022-03-27T09:48:17+02:00",
-  "path": "/nix/store/70sghy226gl3s1b2p0zjhplb6zjy777g-tree-sitter-scala",
-  "sha256": "0yjl8hwdm1pkihfgfbg19z5j0v3cp64a2pa59maws1i231fm5bsw",
+  "rev": "8599058ef292e82203a1b23d10734dcbaf4d1b5c",
+  "date": "2022-05-09T16:17:13-07:00",
+  "path": "/nix/store/q802q124fq79wwr6m4xfcdmgw6fzjigw-tree-sitter-scala",
+  "sha256": "0i6qkgyv722jwma2rs0nf02jzl5dvml5m1whb7580qnza95x7py1",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
index b9a3184e942e3..10908da4ae7cf 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-vim.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/vigoux/tree-sitter-viml",
-  "rev": "5268e0ec901e33ad7142ee31b580269a94fba042",
-  "date": "2022-04-16T20:12:40+02:00",
-  "path": "/nix/store/rw6cjm4vj4yihlfmrxa2vc81lr3x59rn-tree-sitter-viml",
-  "sha256": "0vga1bivzkr00brzvv309hx7sqvg7y2kf6vx0s8hv9r56x6nm54s",
+  "rev": "4b9d2dda6de64fe5abc9bf96b5727ba73ed08515",
+  "date": "2022-05-07T11:41:23+02:00",
+  "path": "/nix/store/zm2pfjv3fn2qg6iy1s03mn5kjawsy3qg-tree-sitter-viml",
+  "sha256": "0p7fj5vvxxz4d43j91zwv3h8df4m4c26w9gq2qx561vjh5w1q7fn",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/games/0verkill/default.nix b/pkgs/games/0verkill/default.nix
index fa654832e2e2c..8f6a5b1230587 100644
--- a/pkgs/games/0verkill/default.nix
+++ b/pkgs/games/0verkill/default.nix
@@ -27,6 +27,9 @@ gccStdenv.mkDerivation rec {
     autoupdate
   '';
 
+  # The code needs an update for gcc-10:
+  #   https://github.com/hackndev/0verkill/issues/7
+  NIX_CFLAGS_COMPILE = "-fcommon";
   hardeningDisable = [ "all" ]; # Someday the upstream will update the code...
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix
index 22dc930d293df..ec05c65949897 100644
--- a/pkgs/os-specific/linux/firmware/linux-firmware/default.nix
+++ b/pkgs/os-specific/linux/firmware/linux-firmware/default.nix
@@ -2,12 +2,12 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "linux-firmware";
-  version = "20220310";
+  version = "20220509";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-U5XZHzriZaPlgiAcrZnAA7K8PKnIGy58Pi6JziVFTR8=";
+    sha256 = "sha256-pNuKA4XigrHU9qC5Ch6HLs3/tcv0zIkAzow9VOIVKdQ=";
   };
 
   installFlags = [ "DESTDIR=$(out)" ];
@@ -17,7 +17,7 @@ stdenvNoCC.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "sha256-CAYJssH36aKhzvl0q60HyxgDXeAluspfnLLmawmWIQw=";
+  outputHash = "sha256-pXzWAu7ch4dHXvKzfrK826vtNqovCqL7pd+TIVbWnJQ=";
 
   meta = with lib; {
     description = "Binary firmware collection packaged by kernel.org";
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index f6b91d77511ec..e189a7d2fdff6 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
+outer@{ lib, stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
+, nginx-doc
 
 , nixosTests
 , substituteAll, gd, geoip, perl
@@ -23,6 +24,7 @@
 , preConfigure ? ""
 , postInstall ? null
 , meta ? null
+, nginx-doc ? outer.nginx-doc
 , passthru ? { tests = {}; }
 }:
 
@@ -44,6 +46,8 @@ stdenv.mkDerivation {
   inherit version;
   inherit nginxVersion;
 
+  outputs = ["out" "doc"];
+
   src = if src != null then src else fetchurl {
     url = "https://nginx.org/download/nginx-${version}.tar.gz";
     inherit sha256;
@@ -114,8 +118,12 @@ stdenv.mkDerivation {
 
   configurePlatforms = [];
 
-  preConfigure = preConfigure
-    + concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules;
+  # Disable _multioutConfig hook which adds --bindir=$out/bin into configureFlags,
+  # which breaks build, since nginx does not actually use autoconf.
+  preConfigure = ''
+    setOutputFlags=
+  '' + preConfigure
+     + concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules;
 
   patches = map fixPatch ([
     (substituteAll {
@@ -145,6 +153,11 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  preInstall = ''
+    mkdir -p $doc
+    cp -r ${nginx-doc}/* $doc
+  '';
+
   postInstall = if postInstall != null then postInstall else ''
     mv $out/sbin $out/bin
   '';
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index 266bb0a383d8f..da4c2b04eb4c0 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.18";
+  version = "2.3.19";
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs =
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
-    hash = "sha256-Buc/ZoxsCTxFve7rfCA5irjcSTFyNPS1eBrF4sxdbDM=";
+    hash = "sha256:0ys3zq9b1rgj1cz6a0i9l421y6h2j3b5zak2ia5j9dj1sj9zcwq1";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 3f1f2d270a364..c3f11bc14b28d 100644
--- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -3,11 +3,11 @@ let
   dovecotMajorMinor = lib.versions.majorMinor dovecot.version;
 in stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.18";
+  version = "0.5.19";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/${dovecotMajorMinor}/dovecot-${dovecotMajorMinor}-pigeonhole-${version}.tar.gz";
-    hash = "sha256-ptgo+Nby3sulEFND7OXHplJFvZTkaorkQyptl1QxCKU=";
+    hash = "sha256:033kkhby9k9yrmgvlfmyzp8fccsw5bhq1dyvxj94sg3grkpj7f8h";
   };
 
   buildInputs = [ dovecot openssl ];
diff --git a/pkgs/servers/ombi/default.nix b/pkgs/servers/ombi/default.nix
index e0eac1b8c04cf..7215571b3aec6 100644
--- a/pkgs/servers/ombi/default.nix
+++ b/pkgs/servers/ombi/default.nix
@@ -10,14 +10,14 @@ let
     "Unsupported system: ${stdenv.hostPlatform.system}");
 
   hash = {
-    x64-linux_hash = "sha256-O/dfLZst7RFnqDZj8UX6ejL2EBjGnCBY3e8JB3peRgY=";
-    arm64-linux_hash = "sha256-DkCOK1A7L1gMqY/XPIJFFz7qvUvxA6aJa24Hrh3dT/U=";
-    x64-osx_hash = "sha256-4N0/FTVhxUooauhh+7u527aViSBILiCb+a4cI17QTAg=";
+    x64-linux_hash = "sha256-8Y6I6vitkgIV6WMXF1YXzgRfhJd/O6hcdpC9yZLpDA4=";
+    arm64-linux_hash = "sha256-OXbJbwjNDd3GNL4bvuZLwNOjfAp8YBnJiylid0w8kLI=";
+    x64-osx_hash = "sha256-BoYqplC8ahMhpgntZVozyPCp08YqmiZ3ED7TgKlXPXc=";
   }."${arch}-${os}_hash";
 
 in stdenv.mkDerivation rec {
   pname = "ombi";
-  version = "4.10.2";
+  version = "4.16.12";
 
   sourceRoot = ".";
 
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch b/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
deleted file mode 100644
index 54b6ce26138a7..0000000000000
--- a/pkgs/shells/zsh/zsh-fzf-tab/darwin.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/modules/Src/aloxaf/fzftab.c b/modules/Src/aloxaf/fzftab.c
-index 60b6330..91975d8 100644
---- a/modules/Src/aloxaf/fzftab.c
-+++ b/modules/Src/aloxaf/fzftab.c
-@@ -1,6 +1,5 @@
- #include "fzftab.mdh"
- #include "fzftab.pro"
--#include <malloc.h>
- #include <stdarg.h>
- #include <stdlib.h>
- #include <sys/stat.h>
diff --git a/pkgs/shells/zsh/zsh-fzf-tab/default.nix b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
index 029950b9bee60..be12ec147d5db 100644
--- a/pkgs/shells/zsh/zsh-fzf-tab/default.nix
+++ b/pkgs/shells/zsh/zsh-fzf-tab/default.nix
@@ -15,8 +15,6 @@ in stdenv.mkDerivation rec {
 
   buildInputs = [ ncurses ];
 
-  patches = lib.optionals stdenv.isDarwin [ ./darwin.patch ];
-
   postConfigure = ''
     pushd modules
     ./configure --disable-gdbm --without-tcsetpgrp
diff --git a/pkgs/tools/admin/bubblewrap/default.nix b/pkgs/tools/admin/bubblewrap/default.nix
index fda6113b59841..92a188b0cb61b 100644
--- a/pkgs/tools/admin/bubblewrap/default.nix
+++ b/pkgs/tools/admin/bubblewrap/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bubblewrap";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "bubblewrap";
     rev = "v${version}";
-    sha256 = "sha256-YmK/Tq9/JTJr5gLNKEH5t6TvvXlNSTDz5Ui7d3ewv2s=";
+    hash = "sha256-J+VFla3sWO+DfB2IxxrKzbiG+KWFJr9caf8sTHyWXY4=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/backup/zbackup/default.nix b/pkgs/tools/backup/zbackup/default.nix
index ee5cc6fd89e90..9b618ccec5051 100644
--- a/pkgs/tools/backup/zbackup/default.nix
+++ b/pkgs/tools/backup/zbackup/default.nix
@@ -20,6 +20,10 @@ stdenv.mkDerivation rec {
     ./protobuf-api-change.patch
   ];
 
+  # zbackup uses dynamic exception specifications which are not
+  # allowed in C++17
+  NIX_CFLAGS_COMPILE = [ "--std=c++14" ];
+
   buildInputs = [ zlib openssl protobuf lzo libunwind ];
   nativeBuildInputs = [ cmake protobufc ];
 
diff --git a/pkgs/tools/misc/bat/default.nix b/pkgs/tools/misc/bat/default.nix
index 558bd4bad3f63..e886616b70795 100644
--- a/pkgs/tools/misc/bat/default.nix
+++ b/pkgs/tools/misc/bat/default.nix
@@ -12,15 +12,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "bat";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-U+EHOZntZsHfvLapLpbiIKXSm8Qc1BRqCTR/AFe6yfQ=";
+    sha256 = "sha256-eCk0oOHGZNqgqz+JJfIhjWdLgBTpBig+mggi1c3EUDk=";
   };
-  cargoSha256 = "sha256-eSBcrKjgCz8mApLJnpNyWVC8pQVUX8dPiYJDIK470U8=";
+  cargoSha256 = "sha256-kYZxtiK9hnHBOMvRoHZK5kyXO9cg/gHBYuaITqKUpbE=";
 
   nativeBuildInputs = [ pkg-config installShellFiles makeWrapper ];
 
diff --git a/pkgs/tools/misc/dotter/default.nix b/pkgs/tools/misc/dotter/default.nix
index 5ca26be420ea7..67401b4d85b8e 100644
--- a/pkgs/tools/misc/dotter/default.nix
+++ b/pkgs/tools/misc/dotter/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, rustPlatform, which }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, CoreServices, which }:
 
 rustPlatform.buildRustPackage rec {
   pname = "dotter";
@@ -13,6 +13,8 @@ rustPlatform.buildRustPackage rec {
 
   cargoHash = "sha256-JpMEC2HjAQLQiXHSE6L0HBDc0vLhd465wDK2+35aBXA=";
 
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
+
   checkInputs = [ which ];
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/esptool/default.nix b/pkgs/tools/misc/esptool/default.nix
index e1ec37063deaf..b4439363d4ada 100644
--- a/pkgs/tools/misc/esptool/default.nix
+++ b/pkgs/tools/misc/esptool/default.nix
@@ -2,19 +2,27 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "esptool";
-  version = "3.3";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "espressif";
     repo = "esptool";
     rev = "v${version}";
-    sha256 = "sha256-CmGie+M3AboOk8X+LkRhIxTRQZgDlklouzmz8kiIZuI=";
+    hash = "sha256-9WmiLji7Zoad5WIzgkpvkI9t96sfdkCtFh6zqVxF7qo=";
   };
 
-  checkInputs = with python3.pkgs;
-    [ flake8 flake8-future-import flake8-import-order openssl ];
-  propagatedBuildInputs = with python3.pkgs;
-    [ pyserial pyaes ecdsa reedsolo bitstring cryptography ];
+  postPatch = ''
+    substituteInPlace test/test_imagegen.py \
+      --replace "sys.executable, ESPTOOL_PY" "ESPTOOL_PY"
+  '';
+
+  propagatedBuildInputs = with python3.pkgs; [
+    bitstring
+    cryptography
+    ecdsa
+    pyserial
+    reedsolo
+  ];
 
   # wrapPythonPrograms will overwrite esptool.py with a bash script,
   # but espefuse.py tries to import it. Since we don't add any binary paths,
@@ -28,6 +36,23 @@ python3.pkgs.buildPythonApplication rec {
     done
   '';
 
+  checkInputs = with python3.pkgs; [
+    pyelftools
+  ];
+
+  # tests mentioned in `.github/workflows/test_esptool.yml`
+  checkPhase = ''
+    runHook preCheck
+
+    export ESPTOOL_PY=$out/bin/esptool.py
+    ${python3.interpreter} test/test_imagegen.py
+    ${python3.interpreter} test/test_espsecure.py
+    ${python3.interpreter} test/test_merge_bin.py
+    ${python3.interpreter} test/test_modules.py
+
+    runHook postCheck
+  '';
+
   meta = with lib; {
     description = "ESP8266 and ESP32 serial bootloader utility";
     homepage = "https://github.com/espressif/esptool";
diff --git a/pkgs/tools/networking/aircrack-ng/default.nix b/pkgs/tools/networking/aircrack-ng/default.nix
index f836fdf052f9b..b4cab28e3ebdf 100644
--- a/pkgs/tools/networking/aircrack-ng/default.nix
+++ b/pkgs/tools/networking/aircrack-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aircrack-ng";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchurl {
     url = "https://download.aircrack-ng.org/aircrack-ng-${version}.tar.gz";
-    sha256 = "0ix2k64qg7x3w0bzdsbk1m50kcpq1ws59g3zkwiafvpwdr4gs2sg";
+    sha256 = "1hsq1gwmafka4bahs6rc8p98yi542h9a502h64bjlygpr3ih99q5";
   };
 
   nativeBuildInputs = [ pkg-config makeWrapper autoreconfHook ];
diff --git a/pkgs/tools/networking/getmail6/default.nix b/pkgs/tools/networking/getmail6/default.nix
index e143760c4985f..82122b150664d 100644
--- a/pkgs/tools/networking/getmail6/default.nix
+++ b/pkgs/tools/networking/getmail6/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "getmail6";
-  version = "6.18.8";
+  version = "6.18.9";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-MIK5++3SaGm1BMpU8G4X7n/SCBw+N39U44cyX65tPcQ=";
+    hash = "sha256-qzlURYdE7nv+/wxK3B6WddmhW6xiLS7em3X5O5+CBbI=";
   };
 
   # needs a Docker setup
diff --git a/pkgs/tools/security/yubihsm-connector/default.nix b/pkgs/tools/security/yubihsm-connector/default.nix
new file mode 100644
index 0000000000000..24371f8a983e3
--- /dev/null
+++ b/pkgs/tools/security/yubihsm-connector/default.nix
@@ -0,0 +1,40 @@
+{ lib, libusb1, buildGoModule, fetchFromGitHub, pkg-config }:
+
+buildGoModule rec {
+  pname = "yubihsm-connector";
+  version = "3.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Yubico";
+    repo = "yubihsm-connector";
+    rev = version;
+    sha256 = "FQ64tSZN55QpXjMZITzlWOPTKSgnoCpkRngQUQHVavc=";
+  };
+
+  vendorSha256 = "kVBzdJk/1LvjdUtLqHAw9ZxDfCo3mBWVMYG/nQXpDrk=";
+
+  patches = [
+    # Awaiting a new release to fix the upstream lockfile
+    # https://github.com/Yubico/yubihsm-connector/issues/36
+    ./lockfile-fix.patch
+  ];
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    libusb1
+  ];
+
+  preBuild = ''
+    go generate
+  '';
+
+  meta = with lib; {
+    description = "yubihsm-connector performs the communication between the YubiHSM 2 and applications that use it";
+    homepage = "https://developers.yubico.com/yubihsm-connector/";
+    maintainers = with maintainers; [ matthewcroughan ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/tools/security/yubihsm-connector/lockfile-fix.patch b/pkgs/tools/security/yubihsm-connector/lockfile-fix.patch
new file mode 100644
index 0000000000000..96fdb0ec64b8a
--- /dev/null
+++ b/pkgs/tools/security/yubihsm-connector/lockfile-fix.patch
@@ -0,0 +1,115 @@
+diff --git a/go.mod b/go.mod
+index ac22dc6..0ef56b2 100644
+--- a/go.mod
++++ b/go.mod
+@@ -1,21 +1,32 @@
+ module github.com/Yubico/yubihsm-connector
+
++go 1.17
++
+ require (
+ 	github.com/google/gousb v1.1.0
+ 	github.com/google/uuid v1.1.1
+ 	github.com/kardianos/service v1.0.0
++	github.com/notdpate/evloghook v0.0.0-20180503050227-f202fa6c9ebb
++	github.com/sirupsen/logrus v1.4.2
++	github.com/spf13/cobra v0.0.5
++	github.com/spf13/viper v1.4.0
++	gopkg.in/yaml.v2 v2.2.2
++)
++
++require (
++	github.com/fsnotify/fsnotify v1.4.7 // indirect
++	github.com/hashicorp/hcl v1.0.0 // indirect
++	github.com/inconshreveable/mousetrap v1.0.0 // indirect
+ 	github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect
+ 	github.com/magiconair/properties v1.8.1 // indirect
+-	github.com/notdpate/evloghook v0.0.0-20180503050227-f202fa6c9ebb
++	github.com/mitchellh/mapstructure v1.1.2 // indirect
+ 	github.com/pelletier/go-toml v1.4.0 // indirect
+-	github.com/sirupsen/logrus v1.4.2
+ 	github.com/spf13/afero v1.2.2 // indirect
+-	github.com/spf13/cobra v0.0.5
++	github.com/spf13/cast v1.3.0 // indirect
+ 	github.com/spf13/jwalterweatherman v1.1.0 // indirect
+-	github.com/spf13/viper v1.4.0
++	github.com/spf13/pflag v1.0.3 // indirect
+ 	github.com/stretchr/testify v1.4.0 // indirect
+ 	golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3 // indirect
+ 	golang.org/x/text v0.3.2 // indirect
+ 	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
+-	gopkg.in/yaml.v2 v2.2.2
+ )
+diff --git a/go.sum b/go.sum
+index 71df42d..8d977ff 100644
+--- a/go.sum
++++ b/go.sum
+@@ -1,4 +1,5 @@
+ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
++github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
+ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
+ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
+ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
+@@ -16,6 +17,7 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7
+ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
+ github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=
+ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
++github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
+ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
+ github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
+@@ -45,6 +47,7 @@ github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgf
+ github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
+ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
+ github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
++github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=
+ github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
+ github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
+ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
+@@ -53,10 +56,13 @@ github.com/kardianos/service v1.0.0/go.mod h1:8CzDhVuCuugtsHyZoTvsOBuvonN/UDBvl0
+ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
+ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+ github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
++github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s=
+ github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+ github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
++github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
+ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
++github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
+ github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
+ github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=
+@@ -66,12 +72,14 @@ github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrk
+ github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=
+ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+ github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
++github.com/notdpate/evloghook v0.0.0-20180503050227-f202fa6c9ebb h1:GFmMJZvdCkRfbfo07+lUKrB+jh2cJ+a2l6qD/3hxZ6M=
+ github.com/notdpate/evloghook v0.0.0-20180503050227-f202fa6c9ebb/go.mod h1:ukoRZyzBppMQypxM7KqEvHc4DB5uNW6NXFp1sVeXamM=
+ github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
+ github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
+ github.com/pelletier/go-toml v1.4.0 h1:u3Z1r+oOXJIkxqw34zVhyPgjBsm6X2wn21NWs/HfSeg=
+ github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo=
+ github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
++github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
+ github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
+ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
+@@ -107,6 +115,7 @@ github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/y
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
++github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk=
+ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+ github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
+ github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=
+@@ -156,6 +165,7 @@ google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ij
+ gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
+ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
++gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
+ gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
+ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
+ gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
+
+
diff --git a/pkgs/tools/security/yubihsm-shell/default.nix b/pkgs/tools/security/yubihsm-shell/default.nix
new file mode 100644
index 0000000000000..06a1452400de5
--- /dev/null
+++ b/pkgs/tools/security/yubihsm-shell/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, openssl
+, libusb1
+, libedit
+, curl
+, gengetopt
+, pkg-config
+, pcsclite
+, help2man
+}:
+
+stdenv.mkDerivation rec {
+  pname = "yubihsm-shell";
+  version = "2.3.1";
+
+  src = fetchFromGitHub {
+    owner = "Yubico";
+    repo = "yubihsm-shell";
+    rev = version;
+    sha256 = "D0kXiwc+i6mKA4oHuHjgXUmLMsmY5o/VI+1aCWtNjC0=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    help2man
+    gengetopt
+  ];
+
+  buildInputs = [
+    libusb1
+    libedit
+    curl
+    pcsclite
+    openssl
+  ];
+
+  cmakeFlags = [
+    # help2man fails without this
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
+  ];
+
+  postPatch = ''
+    # Can't find libyubihsm at runtime because of dlopen() in C code
+    substituteInPlace lib/yubihsm.c \
+      --replace "libyubihsm_usb.so" "$out/lib/libyubihsm_usb.so" \
+      --replace "libyubihsm_http.so" "$out/lib/libyubihsm_http.so"
+  '';
+
+  meta = with lib; {
+    description = "yubihsm-shell and libyubihsm";
+    homepage = "https://github.com/Yubico/yubihsm-shell";
+    maintainers = with maintainers; [ matthewcroughan ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 38d1e796db417..d213a4b2a1f96 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -403,6 +403,8 @@ mapAliases ({
   flashplayer-standalone = throw "flashplayer-standalone has been removed as Adobe Flash Player is now deprecated"; # Added 2021-02-07
   flashplayer = throw "flashplayer has been removed as Adobe Flash Player is now deprecated"; # Added 2021-02-07
   flashtool = throw "flashtool was removed from nixpkgs, because the download is down for copyright reasons and the site looks very fishy"; # Added 2021-06-31
+  flatbuffers_1_12 = throw "FlatBuffers version 1.12 has been removed, because upstream no longer maintains it"; # Added 2022-05-12
+  flatbuffers_2_0 = flatbuffers; # Added 2022-05-12
   flink_1_5 = throw "flink_1_5 was removed, use flink instead"; # Added 2021-01-25
   flutter-beta = throw "Non-stable versions of Flutter have been removed. You can use flutterPackages.mkFlutter to generate a package for other Flutter versions"; # Added 2020-01-15
   flutter-dev = throw "Non-stable versions of Flutter have been removed. You can use flutterPackages.mkFlutter to generate a package for other Flutter versions"; # Added 2020-01-15
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e89aa5c04a818..24d0ccf750017 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2143,7 +2143,9 @@ with pkgs;
 
   doona = callPackage ../tools/security/doona { };
 
-  dotter = callPackage ../tools/misc/dotter { };
+  dotter = callPackage ../tools/misc/dotter {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
 
   droidcam = callPackage ../applications/video/droidcam { };
 
@@ -7327,7 +7329,7 @@ with pkgs;
   jo = callPackage ../development/tools/jo { };
 
   joshuto = callPackage ../applications/misc/joshuto {
-    inherit (darwin.apple_sdk.frameworks) SystemConfiguration;
+    inherit (darwin.apple_sdk.frameworks) SystemConfiguration Foundation;
   };
 
   jrnl = callPackage ../applications/misc/jrnl { };
@@ -7397,7 +7399,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit;
   };
 
-  kdash = callPackage ../development/tools/kdash { };
+  kdash = callPackage ../development/tools/kdash {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
 
   kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
 
@@ -8664,6 +8668,8 @@ with pkgs;
 
   notable = callPackage ../applications/misc/notable { };
 
+  nth = with python3Packages; toPythonApplication name-that-hash;
+
   ntlmrecon = callPackage ../tools/security/ntlmrecon { };
 
   numberstation = callPackage ../applications/misc/numberstation { };
@@ -13015,6 +13021,8 @@ with pkgs;
 
   stylish-cabal = haskell.lib.compose.justStaticExecutables haskellPackages.stylish-cabal;
 
+  lhs2tex = haskellPackages.lhs2tex;
+
   all-cabal-hashes = callPackage ../data/misc/hackage { };
 
   purescript = callPackage ../development/compilers/purescript/purescript { };
@@ -20135,9 +20143,7 @@ with pkgs;
 
   protozero = callPackage ../development/libraries/protozero { };
 
-  flatbuffers = flatbuffers_2_0;
-  flatbuffers_2_0 = callPackage ../development/libraries/flatbuffers/2.0.nix { };
-  flatbuffers_1_12 = callPackage ../development/libraries/flatbuffers/1.12.nix { };
+  flatbuffers = callPackage ../development/libraries/flatbuffers { };
 
   nanopb = callPackage ../development/libraries/nanopb { };
 
@@ -21165,6 +21171,8 @@ with pkgs;
 
   xgboost = callPackage ../development/libraries/xgboost { };
 
+  xgboostWithCuda = xgboost.override { cudaSupport = true; };
+
   xgeometry-select = callPackage ../tools/X11/xgeometry-select { };
 
   # Avoid using this. It isn't really a wrapper anymore, but we keep the name.
@@ -21213,6 +21221,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) PCSC;
   };
 
+  yubihsm-connector = callPackage ../tools/security/yubihsm-connector { };
+
   yubikey-manager = callPackage ../tools/misc/yubikey-manager { };
 
   yubikey-manager-qt = libsForQt5.callPackage ../tools/misc/yubikey-manager-qt { };
@@ -21225,6 +21235,8 @@ with pkgs;
 
   yubikey-touch-detector = callPackage ../tools/security/yubikey-touch-detector { };
 
+  yubihsm-shell = callPackage ../tools/security/yubihsm-shell { };
+
   zchunk = callPackage ../development/libraries/zchunk { };
 
   zeitgeist = callPackage ../development/libraries/zeitgeist { };
@@ -21996,6 +22008,8 @@ with pkgs;
 
   nginx = nginxStable;
 
+  nginx-doc = callPackage ../data/documentation/nginx-doc { };
+
   nginxQuic = callPackage ../servers/http/nginx/quic.nix {
     zlib = zlib-ng.override { withZlibCompat = true; };
     withPerl = false;
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 9c3e666c5b3bc..6cfd34aa279b4 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
+{ lib, stdenv, fetchzip
+, callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
 , ocamlPackages_4_10, ocamlPackages_4_12, fetchpatch, makeWrapper, coq2html
 }@args:
 let lib = import ../build-support/coq/extra-lib.nix {inherit (args) lib;}; in
@@ -8,6 +9,8 @@ let
       inherit coq lib;
       coqPackages = self;
 
+      metaFetch = import ../build-support/coq/meta-fetch/default.nix
+        {inherit lib stdenv fetchzip; };
       mkCoqDerivation = callPackage ../build-support/coq {};
 
       contribs = recurseIntoAttrs
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 44f7328c6f995..e7439938b343d 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -2514,6 +2514,8 @@ in {
 
   dparse = callPackage ../development/python-modules/dparse { };
 
+  dparse2 = callPackage ../development/python-modules/dparse2 { };
+
   dpath = callPackage ../development/python-modules/dpath { };
 
   dpkt = callPackage ../development/python-modules/dpkt { };
@@ -5366,7 +5368,7 @@ in {
 
   monosat = pkgs.monosat.python {
     inherit buildPythonPackage;
-    inherit (self) cython;
+    inherit (self) cython pytestCheckHook;
   };
 
   monotonic = callPackage ../development/python-modules/monotonic { };
@@ -5525,6 +5527,8 @@ in {
 
   names = callPackage ../development/python-modules/names { };
 
+  name-that-hash = callPackage ../development/python-modules/name-that-hash { };
+
   nampa = callPackage ../development/python-modules/nampa { };
 
   nanoleaf = callPackage ../development/python-modules/nanoleaf { };
@@ -8474,6 +8478,8 @@ in {
 
   python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
 
+  python-rabbitair = callPackage ../development/python-modules/python-rabbitair { };
+
   python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
 
   python-registry = callPackage ../development/python-modules/python-registry { };
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index a1e72c90bea45..1621740c28801 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -203,6 +203,7 @@ let
         koka
         krank
         lambdabot
+        lhs2tex
         madlang
         matterhorn
         mueval