summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/languages-frameworks/python.section.md67
-rw-r--r--pkgs/applications/audio/quodlibet/default.nix4
-rw-r--r--pkgs/applications/finance/odoo/default.nix4
-rw-r--r--pkgs/applications/misc/privacyidea/default.nix6
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix7
-rw-r--r--pkgs/applications/networking/errbot/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/turses/default.nix4
-rw-r--r--pkgs/applications/networking/sync/rsync/base.nix22
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix39
-rw-r--r--pkgs/applications/networking/sync/rsync/rrsync.nix12
-rw-r--r--pkgs/applications/science/biology/MACS2/default.nix8
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix2
-rw-r--r--pkgs/data/misc/mailcap/default.nix22
-rw-r--r--pkgs/data/misc/mobile-broadband-provider-info/default.nix4
-rw-r--r--pkgs/development/compilers/dtc/default.nix25
-rw-r--r--pkgs/development/compilers/dtc/python-3.10.patch28
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix24
-rw-r--r--pkgs/development/compilers/go/1.17.nix4
-rw-r--r--pkgs/development/compilers/go/1.18.nix4
-rw-r--r--pkgs/development/interpreters/lua-5/CVE-2022-28805.patch10
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix16
-rw-r--r--pkgs/development/interpreters/python/default.nix2
-rw-r--r--pkgs/development/interpreters/spidermonkey/78.nix4
-rw-r--r--pkgs/development/libraries/dbus/default.nix9
-rw-r--r--pkgs/development/libraries/dbus/make-dbus-conf.nix26
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix21
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix6
-rw-r--r--pkgs/development/libraries/jansson/default.nix22
-rw-r--r--pkgs/development/libraries/json-c/default.nix13
-rw-r--r--pkgs/development/libraries/libffi/default.nix13
-rw-r--r--pkgs/development/libraries/libffi/libffi-powerpc64.patch23
-rw-r--r--pkgs/development/libraries/libqmi/default.nix4
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/mapnik/default.nix13
-rw-r--r--pkgs/development/libraries/mesa/default.nix8
-rw-r--r--pkgs/development/libraries/nss/esr.nix4
-rw-r--r--pkgs/development/libraries/nss/generic.nix4
-rw-r--r--pkgs/development/libraries/nss/latest.nix4
-rw-r--r--pkgs/development/libraries/openldap/default.nix42
-rw-r--r--pkgs/development/libraries/pipewire/default.nix17
-rw-r--r--pkgs/development/libraries/portaudio/default.nix9
-rw-r--r--pkgs/development/libraries/thrift/default.nix56
-rw-r--r--pkgs/development/libraries/tracker/default.nix8
-rw-r--r--pkgs/development/libraries/unicorn/default.nix17
-rw-r--r--pkgs/development/libraries/xxHash/default.nix39
-rw-r--r--pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch51
-rw-r--r--pkgs/development/libraries/zlib/default.nix6
-rw-r--r--pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--pkgs/development/python-modules/Rtree/default.nix34
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix4
-rw-r--r--pkgs/development/python-modules/aiosteamist/default.nix3
-rw-r--r--pkgs/development/python-modules/ansible-later/default.nix2
-rw-r--r--pkgs/development/python-modules/antlr4-python3-runtime/default.nix3
-rw-r--r--pkgs/development/python-modules/apipkg/default.nix4
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix13
-rw-r--r--pkgs/development/python-modules/astroid/default.nix22
-rw-r--r--pkgs/development/python-modules/audible/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-data-tables/default.nix34
-rw-r--r--pkgs/development/python-modules/azure-mgmt-consumption/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-relay/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix4
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/default.nix7
-rw-r--r--pkgs/development/python-modules/billiard/default.nix5
-rw-r--r--pkgs/development/python-modules/botocore/default.nix2
-rw-r--r--pkgs/development/python-modules/cachecontrol/default.nix13
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix4
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--pkgs/development/python-modules/cfn-flip/default.nix2
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix15
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix40
-rw-r--r--pkgs/development/python-modules/colorama/default.nix5
-rw-r--r--pkgs/development/python-modules/configobj/default.nix29
-rw-r--r--pkgs/development/python-modules/constantly/default.nix2
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix10
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--pkgs/development/python-modules/cssutils/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-gateway-server/default.nix32
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix54
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix6
-rw-r--r--pkgs/development/python-modules/dask/default.nix63
-rw-r--r--pkgs/development/python-modules/databases/default.nix4
-rw-r--r--pkgs/development/python-modules/distributed/default.nix30
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix6
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix25
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix32
-rw-r--r--pkgs/development/python-modules/filelock/default.nix13
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix2
-rw-r--r--pkgs/development/python-modules/flickrapi/default.nix2
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix64
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix34
-rw-r--r--pkgs/development/python-modules/gcsfs/default.nix8
-rw-r--r--pkgs/development/python-modules/gdown/default.nix3
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix4
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix2
-rw-r--r--pkgs/development/python-modules/graph-tool/default.nix59
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix66
-rw-r--r--pkgs/development/python-modules/graphite-web/update-django-tagging.patch13
-rw-r--r--pkgs/development/python-modules/gunicorn/default.nix57
-rw-r--r--pkgs/development/python-modules/gyp/default.nix20
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix6
-rw-r--r--pkgs/development/python-modules/homeconnect/default.nix2
-rw-r--r--pkgs/development/python-modules/httpbin/default.nix8
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix44
-rw-r--r--pkgs/development/python-modules/httpx/default.nix58
-rw-r--r--pkgs/development/python-modules/hyperion-py/default.nix11
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix16
-rw-r--r--pkgs/development/python-modules/ifaddr/default.nix11
-rw-r--r--pkgs/development/python-modules/imageio/default.nix4
-rw-r--r--pkgs/development/python-modules/immutables/default.nix14
-rw-r--r--pkgs/development/python-modules/intake/default.nix64
-rw-r--r--pkgs/development/python-modules/ipaddress/default.nix27
-rw-r--r--pkgs/development/python-modules/jsonpatch/default.nix38
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix12
-rw-r--r--pkgs/development/python-modules/libcst/default.nix15
-rw-r--r--pkgs/development/python-modules/limits/default.nix7
-rw-r--r--pkgs/development/python-modules/locket/default.nix21
-rw-r--r--pkgs/development/python-modules/lxml/default.nix4
-rw-r--r--pkgs/development/python-modules/m2r/default.nix9
-rw-r--r--pkgs/development/python-modules/mdx-truly-sane-lists/default.nix36
-rw-r--r--pkgs/development/python-modules/mkdocs-exclude/default.nix37
-rw-r--r--pkgs/development/python-modules/moto/default.nix10
-rw-r--r--pkgs/development/python-modules/msgpack/default.nix18
-rw-r--r--pkgs/development/python-modules/netifaces/default.nix17
-rw-r--r--pkgs/development/python-modules/networkx/default.nix13
-rw-r--r--pkgs/development/python-modules/nose_progressive/default.nix2
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/ordereddict/default.nix21
-rwxr-xr-xpkgs/development/python-modules/osmnx/default.nix6
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix17
-rw-r--r--pkgs/development/python-modules/pbr/default.nix5
-rw-r--r--pkgs/development/python-modules/pefile/default.nix12
-rw-r--r--pkgs/development/python-modules/pgpy/default.nix5
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/psutil/default.nix11
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix5
-rw-r--r--pkgs/development/python-modules/pure-eval/default.nix13
-rw-r--r--pkgs/development/python-modules/pyannotate/default.nix34
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix37
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix12
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix31
-rw-r--r--pkgs/development/python-modules/pycryptodome/vectors.nix (renamed from pkgs/development/python-modules/pycryptodome-test-vectors/default.nix)0
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix26
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix40
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix14
-rw-r--r--pkgs/development/python-modules/pygal/default.nix42
-rw-r--r--pkgs/development/python-modules/pyjwt/default.nix8
-rw-r--r--pkgs/development/python-modules/pylink-square/default.nix33
-rw-r--r--pkgs/development/python-modules/pylint/default.nix23
-rw-r--r--pkgs/development/python-modules/pymemcache/default.nix15
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix13
-rw-r--r--pkgs/development/python-modules/pyserial/default.nix30
-rw-r--r--pkgs/development/python-modules/pytest-annotate/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix8
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-localserver/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix4
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix12
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix60
-rw-r--r--pkgs/development/python-modules/qiling/default.nix4
-rw-r--r--pkgs/development/python-modules/qutip/default.nix137
-rw-r--r--pkgs/development/python-modules/raven/default.nix18
-rw-r--r--pkgs/development/python-modules/repoze_lru/default.nix3
-rw-r--r--pkgs/development/python-modules/requests/default.nix25
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix7
-rw-r--r--pkgs/development/python-modules/routes/default.nix15
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix22
-rw-r--r--pkgs/development/python-modules/sanic-testing/default.nix4
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix4
-rw-r--r--pkgs/development/python-modules/selectors2/mapping-import.patch14
-rw-r--r--pkgs/development/python-modules/selenium/default.nix65
-rw-r--r--pkgs/development/python-modules/simple-rest-client/default.nix4
-rw-r--r--pkgs/development/python-modules/sleekxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix3
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix6
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix19
-rw-r--r--pkgs/development/python-modules/sopel/default.nix28
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix19
-rw-r--r--pkgs/development/python-modules/sparse/default.nix26
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix2
-rw-r--r--pkgs/development/python-modules/splinter/default.nix8
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/streamz/default.nix18
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix7
-rw-r--r--pkgs/development/python-modules/trio-websocket/default.nix42
-rw-r--r--pkgs/development/python-modules/twine/default.nix6
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/types-typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/unidecode/default.nix7
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix21
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix2
-rw-r--r--pkgs/development/python-modules/vulture/default.nix27
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix20
-rw-r--r--pkgs/development/python-modules/webob/default.nix32
-rw-r--r--pkgs/development/python-modules/websockets/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix9
-rw-r--r--pkgs/development/python-modules/xmltodict/default.nix8
-rw-r--r--pkgs/development/python-modules/yamlordereddictloader/default.nix4
-rw-r--r--pkgs/development/python-modules/zipp/default.nix6
-rw-r--r--pkgs/development/python2-modules/botocore/default.nix2
-rw-r--r--pkgs/development/tools/analysis/autoflake/default.nix30
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix15
-rw-r--r--pkgs/development/tools/jira_cli/default.nix4
-rw-r--r--pkgs/development/tools/pip-audit/default.nix1
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--pkgs/misc/i3a/default.nix8
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/top/default.nix3
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix11
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix3
-rw-r--r--pkgs/servers/calibre-web/default.nix4
-rw-r--r--pkgs/servers/home-assistant/default.nix13
-rw-r--r--pkgs/stdenv/common-path.nix8
-rw-r--r--pkgs/stdenv/darwin/default.nix3
-rw-r--r--pkgs/stdenv/generic/setup.sh15
-rw-r--r--pkgs/stdenv/linux/default.nix2
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix13
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix155
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix12
-rw-r--r--pkgs/tools/filesystems/sftpman/default.nix4
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix3
-rw-r--r--pkgs/tools/misc/file/default.nix5
-rw-r--r--pkgs/tools/misc/ntfy/default.nix22
-rw-r--r--pkgs/tools/misc/ntfy/webpush.nix (renamed from pkgs/tools/misc/ntfy-webpush/default.nix)11
-rw-r--r--pkgs/tools/networking/cantoolz/default.nix5
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix15
-rw-r--r--pkgs/top-level/python-aliases.nix3
-rw-r--r--pkgs/top-level/python-packages.nix20
238 files changed, 2428 insertions, 1412 deletions
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 3211ae616a1..09e177c7a48 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -8,9 +8,9 @@
 
 Several versions of the Python interpreter are available on Nix, as well as a
 high amount of packages. The attribute `python3` refers to the default
-interpreter, which is currently CPython 3.9. The attribute `python` refers to
+interpreter, which is currently CPython 3.10. The attribute `python` refers to
 CPython 2.7 for backwards-compatibility. It is also possible to refer to
-specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to
+specific versions, e.g. `python39` refers to CPython 3.9, and `pypy` refers to
 the default PyPy interpreter.
 
 Python is used a lot, and in different ways. This affects also how it is
@@ -26,10 +26,10 @@ however, are in separate sets, with one set per interpreter version.
 The interpreters have several common attributes. One of these attributes is
 `pkgs`, which is a package set of Python libraries for this specific
 interpreter. E.g., the `toolz` package corresponding to the default interpreter
-is `python.pkgs.toolz`, and the CPython 3.8 version is `python38.pkgs.toolz`.
+is `python.pkgs.toolz`, and the CPython 3.9 version is `python39.pkgs.toolz`.
 The main package set contains aliases to these package sets, e.g.
-`pythonPackages` refers to `python.pkgs` and `python38Packages` to
-`python38.pkgs`.
+`pythonPackages` refers to `python.pkgs` and `python39Packages` to
+`python39.pkgs`.
 
 #### Installing Python and packages {#installing-python-and-packages}
 
@@ -54,7 +54,7 @@ with `python.buildEnv` or `python.withPackages` where the interpreter and other
 executables are wrapped to be able to find each other and all of the modules.
 
 In the following examples we will start by creating a simple, ad-hoc environment
-with a nix-shell that has `numpy` and `toolz` in Python 3.8; then we will create
+with a nix-shell that has `numpy` and `toolz` in Python 3.9; then we will create
 a re-usable environment in a single-file Python script; then we will create a
 full Python environment for development with this same environment.
 
@@ -70,10 +70,10 @@ temporary shell session with a Python and a *precise* list of packages (plus
 their runtime dependencies), with no other Python packages in the Python
 interpreter's scope.
 
-To create a Python 3.8 session with `numpy` and `toolz` available, run:
+To create a Python 3.9 session with `numpy` and `toolz` available, run:
 
 ```sh
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
+$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy toolz ])'
 ```
 
 By default `nix-shell` will start a `bash` session with this interpreter in our
@@ -81,8 +81,8 @@ By default `nix-shell` will start a `bash` session with this interpreter in our
 
 ```Python console
 [nix-shell:~/src/nixpkgs]$ python3
-Python 3.8.1 (default, Dec 18 2019, 19:06:26)
-[GCC 9.2.0] on linux
+Python 3.9.12 (main, Mar 23 2022, 21:36:19)
+[GCC 11.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import numpy; import toolz
 ```
@@ -102,13 +102,16 @@ will still get 1 wrapped Python interpreter. We can start the interpreter
 directly like so:
 
 ```sh
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz requests ])' --run python3
-these derivations will be built:
-  /nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv
-building '/nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv'...
-created 277 symlinks in user environment
-Python 3.8.1 (default, Dec 18 2019, 19:06:26)
-[GCC 9.2.0] on linux
+$ nix-shell -p "python39.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3
+this derivation will be built:
+  /nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv
+this path will be fetched (0.09 MiB download, 0.41 MiB unpacked):
+  /nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2
+copying path '/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2' from 'https://cache.nixos.org'...
+building '/nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv'...
+created 279 symlinks in user environment
+Python 3.9.12 (main, Mar 23 2022, 21:36:19)
+[GCC 11.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import requests
 >>>
@@ -147,7 +150,7 @@ Executing this script requires a `python3` that has `numpy`. Using what we learn
 in the previous section, we could startup a shell and just run it like so:
 
 ```ShellSession
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
+$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
 The dot product of [1 2] and [3 4] is: 11
 ```
 
@@ -210,12 +213,12 @@ create a single script with Python dependencies, but in the course of normal
 development we're usually working in an entire package repository.
 
 As explained in the Nix manual, `nix-shell` can also load an expression from a
-`.nix` file. Say we want to have Python 3.8, `numpy` and `toolz`, like before,
+`.nix` file. Say we want to have Python 3.9, `numpy` and `toolz`, like before,
 in an environment. We can add a `shell.nix` file describing our dependencies:
 
 ```nix
 with import <nixpkgs> {};
-(python38.withPackages (ps: [ps.numpy ps.toolz])).env
+(python39.withPackages (ps: [ps.numpy ps.toolz])).env
 ```
 
 And then at the command line, just typing `nix-shell` produces the same
@@ -229,7 +232,7 @@ What's happening here?
    imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
    brings all attributes of `nixpkgs` in the local scope. These attributes form
    the main package set.
-2. Then we create a Python 3.8 environment with the `withPackages` function, as before.
+2. Then we create a Python 3.9 environment with the `withPackages` function, as before.
 3. The `withPackages` function expects us to provide a function as an argument
    that takes the set of all Python packages and returns a list of packages to
    include in the environment. Here, we select the packages `numpy` and `toolz`
@@ -240,7 +243,7 @@ To combine this with `mkShell` you can:
 ```nix
 with import <nixpkgs> {};
 let
-  pythonEnv = python38.withPackages (ps: [
+  pythonEnv = python39.withPackages (ps: [
     ps.numpy
     ps.toolz
   ]);
@@ -378,8 +381,8 @@ information. The output of the function is a derivation.
 
 An expression for `toolz` can be found in the Nixpkgs repository. As explained
 in the introduction of this Python section, a derivation of `toolz` is available
-for each interpreter version, e.g. `python38.pkgs.toolz` refers to the `toolz`
-derivation corresponding to the CPython 3.8 interpreter.
+for each interpreter version, e.g. `python39.pkgs.toolz` refers to the `toolz`
+derivation corresponding to the CPython 3.9 interpreter.
 
 The above example works when you're directly working on
 `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
@@ -392,11 +395,11 @@ and adds it along with a `numpy` package to a Python environment.
 with import <nixpkgs> {};
 
 ( let
-    my_toolz = python38.pkgs.buildPythonPackage rec {
+    my_toolz = python39.pkgs.buildPythonPackage rec {
       pname = "toolz";
       version = "0.10.0";
 
-      src = python38.pkgs.fetchPypi {
+      src = python39.pkgs.fetchPypi {
         inherit pname version;
         sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
       };
@@ -414,7 +417,7 @@ with import <nixpkgs> {};
 ```
 
 Executing `nix-shell` will result in an environment in which you can use
-Python 3.8 and the `toolz` package. As you can see we had to explicitly mention
+Python 3.9 and the `toolz` package. As you can see we had to explicitly mention
 for which Python version we want to build a package.
 
 So, what did we do here? Well, we took the Nix expression that we used earlier
@@ -742,7 +745,7 @@ If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
 is a local source, and if the local source has a `setup.py`, then development
 mode is activated.
 
-In the following example we create a simple environment that has a Python 3.8
+In the following example we create a simple environment that has a Python 3.9
 version of our package in it, as well as its dependencies and other packages we
 like to have in the environment, all specified with `propagatedBuildInputs`.
 Indeed, we can just add any package we like to have in our environment to
@@ -750,7 +753,7 @@ Indeed, we can just add any package we like to have in our environment to
 
 ```nix
 with import <nixpkgs> {};
-with python38Packages;
+with python39Packages;
 
 buildPythonPackage rec {
   name = "mypackage";
@@ -828,9 +831,9 @@ and in this case the `python38` interpreter is automatically used.
 
 ### Interpreters {#interpreters}
 
-Versions 2.7, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
-respectively `python27`, `python37`, `python38` and `python39`. The
-aliases `python2` and `python3` correspond to respectively `python27` and
+Versions 2.7, 3.7, 3.8, 3.9 and 3.10 of the CPython interpreter are available
+as respectively `python27`, `python37`, `python38`, `python39` and `python310`.
+The aliases `python2` and `python3` correspond to respectively `python27` and
 `python39`. The attribute `python` maps to `python2`. The PyPy interpreters
 compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
 aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`. The Nix
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index 6c8ad8225f0..49b320703d1 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -9,11 +9,11 @@
 let optionals = lib.optionals; in
 python3.pkgs.buildPythonApplication rec {
   pname = "quodlibet${tag}";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
-    sha256 = "sha256-oDMY0nZ+SVlVF2PQqH+tl3OHr3EmCP5XJxQXaiS782c=";
+    sha256 = "sha256-MBYVgp9lLLr+2zVTkjcWKli8HucaVn0kn3eJ2SaCRbw=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook gettext ];
diff --git a/pkgs/applications/finance/odoo/default.nix b/pkgs/applications/finance/odoo/default.nix
index bd8b21aa5aa..c755b0fb667 100644
--- a/pkgs/applications/finance/odoo/default.nix
+++ b/pkgs/applications/finance/odoo/default.nix
@@ -1,14 +1,14 @@
 { stdenv
 , lib
 , fetchurl
-, python3
+, python39
 , nodePackages
 , wkhtmltopdf
 , nixosTests
 }:
 
 let
-  python = python3.override {
+  python = python39.override {
     packageOverrides = self: super: {
       click = super.click.overridePythonAttrs (old: rec {
         version = "7.1.2";
diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix
index 5c3afc30155..5aabf3d2ddf 100644
--- a/pkgs/applications/misc/privacyidea/default.nix
+++ b/pkgs/applications/misc/privacyidea/default.nix
@@ -1,9 +1,9 @@
 { lib, fetchFromGitHub, cacert, openssl, nixosTests
-, python3
+, python39
 }:
 
 let
-  python3' = python3.override {
+  python3' = python39.override {
     packageOverrides = self: super: {
       sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
         version = "1.3.24";
@@ -19,7 +19,7 @@ let
       });
       flask_migrate = super.flask_migrate.overridePythonAttrs (oldAttrs: rec {
         version = "2.7.0";
-        src = python3.pkgs.fetchPypi {
+        src = self.fetchPypi {
           pname = "Flask-Migrate";
           inherit version;
           sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 11946272abe..9e3a08cb666 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -21,6 +21,7 @@
 { lib
 , pkgs
 , stdenv
+, fetchpatch
 
 # build time
 , autoconf
@@ -219,6 +220,12 @@ buildStdenv.mkDerivation ({
   ];
 
   patches = [
+    (fetchpatch {
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1773259
+      name = "rust-cbindgen-0.24.2-compat.patch";
+      url = "https://raw.githubusercontent.com/canonical/firefox-snap/5622734942524846fb0eb7108918c8cd8557fde3/patches/fix-ftbfs-newer-cbindgen.patch";
+      hash = "sha256-+wNZhkDB3HSknPRD4N6cQXY7zMT/DzNXx29jQH0Gb1o=";
+    })
   ]
   ++ lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch
   ++ lib.optional (lib.versionAtLeast version "90" && lib.versionOlder version "95") ./no-buildconfig-ffx90.patch
diff --git a/pkgs/applications/networking/errbot/default.nix b/pkgs/applications/networking/errbot/default.nix
index f4a44275b69..d9f02941b43 100644
--- a/pkgs/applications/networking/errbot/default.nix
+++ b/pkgs/applications/networking/errbot/default.nix
@@ -1,32 +1,12 @@
 { lib
-, ansi
-, buildPythonApplication
-, colorlog
-, daemonize
-, deepmerge
-, dulwich
 , fetchFromGitHub
-, flask
 , glibcLocales
-, hypchat
-, irc
-, jinja2
-, markdown
-, mock
-, pyasn1
-, pyasn1-modules
-, pygments
-, pygments-markdown-lexer
-, pyopenssl
-, pytestCheckHook
-, requests
-, slackclient
-, sleekxmpp
-, telegram
-, webtest
+, python39
 }:
 
-buildPythonApplication rec {
+let
+  python3 = python39;
+in python3.pkgs.buildPythonApplication rec {
   pname = "errbot";
   version = "6.1.7";
 
@@ -41,7 +21,7 @@ buildPythonApplication rec {
 
   buildInputs = [ glibcLocales ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     ansi
     colorlog
     daemonize
@@ -64,7 +44,7 @@ buildPythonApplication rec {
     webtest
   ];
 
-  checkInputs = [
+  checkInputs = with python3.pkgs; [
     mock
     pytestCheckHook
   ];
diff --git a/pkgs/applications/networking/instant-messengers/turses/default.nix b/pkgs/applications/networking/instant-messengers/turses/default.nix
index 42dd9f835c9..c368c049daf 100644
--- a/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -19,6 +19,10 @@ let
           rev = "v${version}";
           sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
         };
+        propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
+          super.six
+          super.requests.optional-dependencies.socks
+        ];
         doCheck = false;
       });
     };
diff --git a/pkgs/applications/networking/sync/rsync/base.nix b/pkgs/applications/networking/sync/rsync/base.nix
deleted file mode 100644
index 27358c3ef59..00000000000
--- a/pkgs/applications/networking/sync/rsync/base.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, fetchurl, fetchpatch }:
-
-rec {
-  version = "3.2.4";
-  src = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
-    sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
-  };
-  upstreamPatchTarball = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
-    sha256 = "sha256-cKWXWQr2xhzz0F1mNCn/n2D/4k5E+cc6TNxp69wTIqQ=";
-  };
-
-  meta = with lib; {
-    description = "Fast incremental file transfer utility";
-    homepage = "https://rsync.samba.org/";
-    license = licenses.gpl3Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 29016bc14af..f47c9c75367 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -20,27 +20,32 @@
 , nixosTests
 }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation rec {
   pname = "rsync";
-  version = base.version;
+  version = "3.2.4";
 
-  mainSrc = base.src;
+  srcs = [
+    (fetchurl {
+      # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+      url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
+      sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
+    })
+  ] ++ lib.optional enableCopyDevicesPatch (fetchurl {
+    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
+    sha256 = "1wj21v57v135n6fnm2m2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
+  });
 
-  patchesSrc = base.upstreamPatchTarball;
-
-  srcs = [ mainSrc ] ++ lib.optional enableCopyDevicesPatch patchesSrc;
   patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
 
+  nativeBuildInputs = [ perl ];
+
   buildInputs = [ libiconv zlib popt ]
     ++ lib.optional enableACLs acl
     ++ lib.optional enableZstd zstd
     ++ lib.optional enableLZ4 lz4
     ++ lib.optional enableOpenSSL openssl
     ++ lib.optional enableXXHash xxHash;
-  nativeBuildInputs = [ perl ];
 
   configureFlags = [
     "--with-nobody-group=nogroup"
@@ -48,12 +53,22 @@ stdenv.mkDerivation rec {
     # disable the included zlib explicitly as it otherwise still compiles and
     # links them even.
     "--with-included-zlib=no"
-  ];
+  ]
+  # Work around issue with cross-compilation:
+  #     configure.sh: error: cannot run test program while cross compiling
+  # Remove once 3.2.4 or more recent is released.
+  # The following PR should fix the cross-compilation issue.
+  # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
+  # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
+  ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no";
 
   passthru.tests = { inherit (nixosTests) rsyncd; };
 
-  meta = base.meta // {
-    description = "A fast incremental file transfer utility";
+  meta = with lib; {
+    description = "Fast incremental file transfer utility";
+    homepage = "https://rsync.samba.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
     maintainers = with lib.maintainers; [ ehmry kampfschlaefer ];
   };
 }
diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix
index bb83a9e3cd4..d1e6b6ad96e 100644
--- a/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -1,13 +1,8 @@
 { lib, stdenv, fetchurl, perl, rsync, fetchpatch }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation {
   pname = "rrsync";
-  version = base.version;
-
-  src = base.src;
+  inherit (rsync) version srcs;
 
   buildInputs = [ rsync perl ];
 
@@ -16,6 +11,8 @@ stdenv.mkDerivation {
   dontConfigure = true;
   dontBuild = true;
 
+  inherit (rsync) patches;
+
   postPatch = ''
     substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
   '';
@@ -26,8 +23,7 @@ stdenv.mkDerivation {
     chmod a+x $out/bin/rrsync
   '';
 
-  meta = base.meta // {
+  meta = rsync.meta // {
     description = "A helper to run rsync-only environments from ssh-logins";
-    maintainers = [ lib.maintainers.kampfschlaefer ];
   };
 }
diff --git a/pkgs/applications/science/biology/MACS2/default.nix b/pkgs/applications/science/biology/MACS2/default.nix
index cc398608ce5..868479c48e5 100644
--- a/pkgs/applications/science/biology/MACS2/default.nix
+++ b/pkgs/applications/science/biology/MACS2/default.nix
@@ -9,6 +9,12 @@ python3.pkgs.buildPythonPackage rec {
     sha256 = "1rcxj943kgzs746f5jrb72x1cp4v50rk3qmad0m99a02vndscb5d";
   };
 
+  postPatch = ''
+    # remove version check which breaks on 3.10
+    substituteInPlace setup.py \
+      --replace 'if float(sys.version[:3])<3.6:' 'if False:'
+  '';
+
   propagatedBuildInputs = with python3.pkgs; [ numpy ];
 
   # To prevent ERROR: diffpeak_cmd (unittest.loader._FailedTest) for obsolete
@@ -21,5 +27,7 @@ python3.pkgs.buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ gschwartz ];
     platforms = platforms.linux;
+    # error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘use_tracing’; did you mean ‘tracing’?
+    broken = true;
   };
 }
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 35d714f9b41..ceba14ef92a 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -492,6 +492,8 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" format stackprotector strictoverflow"
     '' + optionalString cc.langD or false ''
       hardening_unsupported_flags+=" format"
+    '' + optionalString cc.langFortran or false ''
+      hardening_unsupported_flags+=" format"
     '' + optionalString targetPlatform.isWasm ''
       hardening_unsupported_flags+=" stackprotector fortify pie pic"
     ''
diff --git a/pkgs/data/misc/mailcap/default.nix b/pkgs/data/misc/mailcap/default.nix
index 3519b01f54b..06c8047e1ca 100644
--- a/pkgs/data/misc/mailcap/default.nix
+++ b/pkgs/data/misc/mailcap/default.nix
@@ -1,23 +1,25 @@
-{ lib, fetchzip }:
+{ lib, stdenv, fetchurl }:
 
-let
+stdenv.mkDerivation rec {
+  pname = "mailcap";
   version = "2.1.53";
 
-in fetchzip {
-  name = "mailcap-${version}";
+  src = fetchurl {
+    url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
+    sha256 = "sha256-Xuou8XswSXe6PsuHr61DGfoEQPgl5Pb7puj6L/64h4U=";
+  };
 
-  url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
-  sha256 = "sha256-6JPj2tZgoTEZ8hNEi9ZZhElBNm9SRTSXifMmCicwiLo=";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xavf $downloadedFile --strip-components=1
     substituteInPlace mailcap --replace "/usr/bin/" ""
-    gzip mailcap.5
     sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
 
     install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
     install -D -m0644 -t $out/etc mailcap mime.types
-    install -D -m0644 -t $out/share/man/man5 mailcap.5.gz
+    install -D -m0644 -t $out/share/man/man5 mailcap.5
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index 234016175d2..8f5ce0d0202 100644
--- a/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20220315";
+  version = "20220511";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-H82sctF52xQnl4Nm9wG+HDx1Nf1aZYvFzIKCR8b2RcY=";
+    sha256 = "sha256-dfk+iGZh8DWYMsPigjyvqG505AgEJbjOCpw7DQqyp3Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index f64579dc583..78290cfc423 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, lib, fetchgit, flex, bison, pkg-config, which
-, pythonSupport ? false, python ? null, swig, libyaml
+{ stdenv
+, lib
+, fetchgit
+, fetchpatch
+, flex
+, bison
+, pkg-config
+, which
+, pythonSupport ? false
+, python ? null
+, swig
+, libyaml
 }:
 
 stdenv.mkDerivation rec {
@@ -12,8 +22,17 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gx9LG3U9etWhPxm7Ox7rOu9X5272qGeHqZtOe68zFs4=";
   };
 
+  patches = [
+    # fix python 3.10 compatibility
+    # based on without requiring the setup.py rework
+    # https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=383e148b70a47ab15f97a19bb999d54f9c3e810f
+    ./python-3.10.patch
+  ];
+
+  nativeBuildInputs = [ flex bison pkg-config which ]
+    ++ lib.optionals pythonSupport [ python swig ];
+
   buildInputs = [ libyaml ];
-  nativeBuildInputs = [ flex bison pkg-config which ] ++ lib.optionals pythonSupport [ python swig ];
 
   postPatch = ''
     patchShebangs pylibfdt/
diff --git a/pkgs/development/compilers/dtc/python-3.10.patch b/pkgs/development/compilers/dtc/python-3.10.patch
new file mode 100644
index 00000000000..e6725a6831f
--- /dev/null
+++ b/pkgs/development/compilers/dtc/python-3.10.patch
@@ -0,0 +1,28 @@
+diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i
+index 51ee801..075ef70 100644
+--- a/pylibfdt/libfdt.i
++++ b/pylibfdt/libfdt.i
+@@ -1044,9 +1044,9 @@ typedef uint32_t fdt32_t;
+ 		$result = Py_None;
+ 	else
+         %#if PY_VERSION_HEX >= 0x03000000
+-            $result = Py_BuildValue("y#", $1, *arg4);
++            $result = Py_BuildValue("y#", $1, (Py_ssize_t)*arg4);
+         %#else
+-            $result = Py_BuildValue("s#", $1, *arg4);
++            $result = Py_BuildValue("s#", $1, (Py_ssize_t)*arg4);
+         %#endif
+ }
+ 
+diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
+index ef40f15..81e161a 100755
+--- a/pylibfdt/setup.py
++++ b/pylibfdt/setup.py
+@@ -42,6 +42,7 @@ def get_version():
+ libfdt_module = Extension(
+     '_libfdt',
+     sources=[os.path.join(srcdir, 'libfdt.i')],
++    define_macros=[('PY_SSIZE_T_CLEAN', None)],
+     include_dirs=[os.path.join(srcdir, '../libfdt')],
+     libraries=['fdt'],
+     library_dirs=[os.path.join(top_builddir, 'libfdt')],
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 2ecfa1bb1cf..30ae18e4917 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -58,22 +58,12 @@ with lib;
 with builtins;
 
 let majorVersion = "9";
-    /*
-      If you update, please build on aarch64-linux
-      and check braces adjacent to `cplusplus` lines in file
-      ./result/lib/gcc/aarch64-unknown-linux-gnu/9.*.0/include/arm_acle.h
-    */
-    version = "${majorVersion}.3.0";
+    version = "${majorVersion}.5.0";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
-      # Fix ICE: Max. number of generated reload insns per insn is achieved (90)
-      #
-      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796
-      #
-      # This patch can most likely be removed by a post 9.3.0-release.
-      [ ./avoid-cycling-subreg-reloads.patch ./gcc9-asan-glibc-2.34.patch ]
+      [ ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
@@ -83,19 +73,13 @@ let majorVersion = "9";
         sha256 = ""; # TODO: uncomment and check hash when available.
       }) */
       ++ optional langAda ../gnat-cflags.patch
-      ++ optional langAda (fetchpatch {
-        name = "gnat-glibc-234.diff";
-        url = "https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103.diff";
-        sha256 = "eS4B7vJasnv2N+5v5yB8/iDpKPX8CJDAy2xabWWj+aU=";
-      })
       ++ optional langD ../libphobos.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
 
       # Obtain latest patch with ../update-mcfgthread-patches.sh
       ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
-
-      ++ [ ../libsanitizer-no-cyclades-9.patch ];
+      ;
 
     /* Cross-gcc settings (build == host != target) */
     crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@@ -112,7 +96,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
-    sha256 = "1la2yy27ziasyf0jvzk58y1i5b5bq2h176qil550bxhifs39gqbi";
+    sha256 = "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7";
   };
 
   inherit patches;
diff --git a/pkgs/development/compilers/go/1.17.nix b/pkgs/development/compilers/go/1.17.nix
index a2c0d3d16b9..94d3472ca69 100644
--- a/pkgs/development/compilers/go/1.17.nix
+++ b/pkgs/development/compilers/go/1.17.nix
@@ -60,11 +60,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.17.10";
+  version = "1.17.11";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-KZ5VrzDxVpGwFdjc+OyuckEkElaeWy7OIDYXU6RW8vk=";
+    sha256 = "sha256-rCZJpllExqWr5VBUAA7uPXcZaIDaNqNVX2LgZUDo61Q=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix
index 6f6e690e354..f5659dd92b7 100644
--- a/pkgs/development/compilers/go/1.18.nix
+++ b/pkgs/development/compilers/go/1.18.nix
@@ -60,11 +60,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.18.2";
+  version = "1.18.3";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${version}.src.tar.gz";
-    sha256 = "sha256-LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I=";
+    sha256 = "sha256-ABI4bdy7XzNQ5AfGeZI4EdvSg/zcQhckkxYUqELsvC0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch b/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch
new file mode 100644
index 00000000000..bcf16acbea4
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch
@@ -0,0 +1,10 @@
+--- a/src/lparser.c
++++ b/src/lparser.c
+@@ -301,6 +301,7 @@
+     expdesc key;
+     singlevaraux(fs, ls->envn, var, 1);  /* get environment variable */
+     lua_assert(var->k == VLOCAL || var->k == VUPVAL);
++    luaK_exp2anyregup(fs, var);  /* but could be a constant */
+     codestring(ls, &key, varname);  /* key is variable name */
+     luaK_indexed(fs, var, &key);  /* env[varname] */
+   }
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index 5230a46afef..a160ee039f3 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -7,7 +7,17 @@ rec {
     hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
     makeWrapper = makeBinaryWrapper;
 
-    patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
+    patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch
+      ++ [
+        (fetchpatch {
+          name = "CVE-2022-28805.patch";
+          url = "https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa.patch";
+          sha256 = "sha256-YTwoolSnRNJIHFPVijSO6ZDw35BG5oWYralZ8qOb9y8=";
+          stripLen = 1;
+          extraPrefix = "src/";
+          excludes = [ "src/testes/*" ];
+        })
+      ];
   };
 
   lua5_4_compat = lua5_4.override({
@@ -32,7 +42,9 @@ rec {
     sourceVersion = { major = "5"; minor = "2"; patch = "4"; };
     hash = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr";
     makeWrapper = makeBinaryWrapper;
-    patches = lib.optional stdenv.isDarwin ./5.2.darwin.patch;
+    patches = [
+      ./CVE-2022-28805.patch
+    ] ++ lib.optional stdenv.isDarwin ./5.2.darwin.patch;
   };
 
   lua5_2_compat = lua5_2.override({
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 0eb06650365..307633fc5d6 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -230,7 +230,7 @@ in {
     enableOptimizations = false;
     enableLTO = false;
     mimetypesSupport = false;
-  } // sources.python39)).overrideAttrs(old: {
+  } // sources.python310)).overrideAttrs(old: {
     # TODO(@Artturin): Add this to the main cpython expr
     strictDeps = true;
     pname = "python3-minimal";
diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix
index f2a68158266..0ce007057a2 100644
--- a/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/pkgs/development/interpreters/spidermonkey/78.nix
@@ -4,7 +4,7 @@
 , autoconf213
 , pkg-config
 , perl
-, python3
+, python39
 , zip
 , buildPackages
 , which
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     rustc.llvmPackages.llvm # for llvm-objdump
     perl
     pkg-config
-    python3
+    python39
     rust-cbindgen
     rustc
     which
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index e7852949249..4e41384847d 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -37,6 +37,10 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional stdenv.isSunOS ./implement-getgrouplist.patch);
 
   postPatch = ''
+    # We need to generate the file ourselves.
+    # https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/317
+    rm doc/catalog.xml
+
     substituteInPlace bus/Makefile.am \
       --replace 'install-data-hook:' 'disabled:' \
       --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
@@ -98,6 +102,11 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  makeFlags = [
+    # Fix paths in XML catalog broken by mismatching build/install datadir.
+    "dtddir=${placeholder "out"}/share/xml/dbus-1"
+  ];
+
   installFlags = [
     "sysconfdir=${placeholder "out"}/etc"
     "datadir=${placeholder "out"}/share"
diff --git a/pkgs/development/libraries/dbus/make-dbus-conf.nix b/pkgs/development/libraries/dbus/make-dbus-conf.nix
index ce5c0b3b577..35b232b2a32 100644
--- a/pkgs/development/libraries/dbus/make-dbus-conf.nix
+++ b/pkgs/development/libraries/dbus/make-dbus-conf.nix
@@ -1,4 +1,8 @@
-{ runCommand, writeText, libxslt, dbus
+{ runCommand
+, writeText
+, libxslt
+, dbus
+, findXMLCatalogs
 , serviceDirectories ? []
 , suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper"
 , apparmor ? "disabled" # one of enabled, disabled, required
@@ -14,19 +18,15 @@ runCommand "dbus-1"
     inherit serviceDirectories suidHelper apparmor;
     preferLocalBuild = true;
     allowSubstitutes = false;
-    XML_CATALOG_FILES = writeText "dbus-catalog.xml" ''
-      <?xml version="1.0"?>
-      <!DOCTYPE catalog PUBLIC
-        "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
-        "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
 
-      <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-        <rewriteSystem
-          systemIdStartString="http://www.freedesktop.org/standards/dbus/1.0/"
-          rewritePrefix="file://${dbus}/share/xml/dbus-1/"/>
-      </catalog>
-    '';
-    nativeBuildInputs = [ libxslt.bin ];
+    nativeBuildInputs = [
+      libxslt
+      findXMLCatalogs
+    ];
+
+    buildInputs = [
+      dbus
+    ];
   }
   ''
     mkdir -p $out
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 2c02bac92d2..29a1f642089 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.72.1";
+  version = "2.72.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "wH5XFHslTO+SzoCgN43AwCpDWOfeRwLp9AMGl4EJX+I=";
+    sha256 = "eNWZoTPbp/4gNt+o24+2Exq5ZCeD/JV4sHogmVJS0t4=";
   };
 
   patches = optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index ef8ef7648eb..f331a8f753b 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -1,24 +1,17 @@
-{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pciutils }:
+{ lib, stdenv, buildPackages, fetchurl, pciutils
+, gitUpdater }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "gnu-efi";
-  version = "3.0.11";
+  version = "3.0.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnu-efi/${pname}-${version}.tar.bz2";
-    sha256 = "1ffnc4xbzfggs37ymrgfx76j56kk2644c081ivhr2bjkla9ag3gj";
+    sha256 = "tztkOg1Wl9HzltdDFEjoht2AVmh4lXjj4aKCd8lShDU=";
   };
 
-  patches = [
-    # Fix build on armv6l
-    (fetchpatch {
-      url = "https://sourceforge.net/p/gnu-efi/patches/_discuss/thread/25bb273a18/9c4d/attachment/0001-Fix-ARCH-on-armv6-and-other-32-bit-ARM-platforms.patch";
-      sha256 = "0pj03h20g2bbz6fr753bj1scry6919h57l1h86z3b6q7hqfj0b4r";
-    })
-  ];
-
   buildInputs = [ pciutils ];
 
   hardeningDisable = [ "stackprotector" ];
@@ -29,6 +22,12 @@ stdenv.mkDerivation rec {
     "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ];
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    # No nicer place to find latest release.
+    url = "https://git.code.sf.net/p/gnu-efi/code";
+  };
+
   meta = with lib; {
     description = "GNU EFI development toolchain";
     homepage = "https://sourceforge.net/projects/gnu-efi/";
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 758c4b091cd..28bcbe9a74c 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -93,6 +93,7 @@
 , Foundation
 , MediaToolbox
 , enableGplPlugins ? true
+, bluezSupport ? stdenv.isLinux
 }:
 
 stdenv.mkDerivation rec {
@@ -181,8 +182,9 @@ stdenv.mkDerivation rec {
     mjpegtools
     faad2
     x265
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals bluezSupport [
     bluez
+  ] ++ lib.optionals stdenv.isLinux [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -264,12 +266,12 @@ stdenv.mkDerivation rec {
     "-Dgs=disabled" # depends on `google-cloud-cpp`
     "-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing
     "-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx`
+    "-Dbluez=${if bluezSupport then "enabled" else "disabled"}"
   ]
   ++ lib.optionals (!stdenv.isLinux) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ]
   ++ lib.optionals stdenv.isDarwin [
-    "-Dbluez=disabled"
     "-Dchromaprint=disabled"
     "-Ddirectfb=disabled"
     "-Dflite=disabled"
diff --git a/pkgs/development/libraries/jansson/default.nix b/pkgs/development/libraries/jansson/default.nix
index 21a697f1e3a..aafbe839bd4 100644
--- a/pkgs/development/libraries/jansson/default.nix
+++ b/pkgs/development/libraries/jansson/default.nix
@@ -1,18 +1,28 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "jansson";
-  version = "2.13.1";
+  version = "2.14";
 
-  src = fetchurl {
-    url = "https://digip.org/jansson/releases/${pname}-${version}.tar.gz";
-    sha256 = "0ks7gbs0j8p4dmmi2sq129mxy5gfg0z6220i1jk020mi2zd7gwzl";
+  src = fetchFromGitHub {
+    owner = "akheron";
+    repo = "jansson";
+    rev = "v${version}";
+    sha256 = "sha256-FQgy2+g3AyRVJeniqPQj0KNeHgPdza2pmEIXqSyYry4=";
   };
 
+  nativeBuildInputs = [ cmake ];
+
+  # networkmanager relies on libjansson.so:
+  #   https://github.com/NixOS/nixpkgs/pull/176302#issuecomment-1150239453
+  cmakeFlags = [ "-DJANSSON_BUILD_SHARED_LIBS=ON" ];
+
   meta = with lib; {
-    homepage = "http://www.digip.org/jansson/";
+    homepage = "https://github.com/akheron/jansson";
     description = "C library for encoding, decoding and manipulating JSON data";
+    changelog = "https://github.com/akheron/jansson/raw/v${version}/CHANGES";
     license = licenses.mit;
     platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index 5a77ea789af..d6aac7161d4 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "json-c";
-  version = "0.15";
+  version = "0.16";
 
   src = fetchurl {
     url    = "https://s3.amazonaws.com/json-c_releases/releases/${pname}-${version}.tar.gz";
-    sha256 = "1im484iz08j3gmzpw07v16brwq46pxxj65i996kkp2vivcfhmn5q";
+    sha256 = "sha256-jkWsj5bsd5Hq87t+5Q6cIQC7vIe40PHQMMW6igKI2Ws=";
   };
 
   outputs = [ "out" "dev" ];
@@ -15,16 +15,15 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A JSON implementation in C";
-    homepage    = "https://github.com/json-c/json-c/wiki";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license = licenses.mit;
-
     longDescription = ''
       JSON-C implements a reference counting object model that allows you to
       easily construct JSON objects in C, output them as JSON formatted strings
       and parse JSON formatted strings back into the C representation of JSON
       objects.
     '';
+    homepage    = "https://github.com/json-c/json-c/wiki";
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 7387a4a1f06..0971091d8a1 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -7,11 +7,6 @@
 , dejagnu
 }:
 
-# Note: this package is used for bootstrapping fetchurl, and thus
-# cannot use fetchpatch! All mutable patches (generated by GitHub or
-# cgit) that are needed here should be included directly in Nixpkgs as
-# files.
-
 stdenv.mkDerivation rec {
   pname = "libffi";
   version = "3.4.2";
@@ -21,7 +16,13 @@ stdenv.mkDerivation rec {
     sha256 = "081nx7wpzds168jbr59m34n6s3lyiq6r8zggvqxvlslsc4hvf3sl";
   };
 
-  patches = [];
+  # Note: this package is used for bootstrapping fetchurl, and thus
+  # cannot use fetchpatch! All mutable patches (generated by GitHub or
+  # cgit) that are needed here should be included directly in Nixpkgs as
+  # files.
+  patches = [
+    ./libffi-powerpc64.patch
+  ];
 
   strictDeps = true;
   outputs = [ "out" "dev" "man" "info" ];
diff --git a/pkgs/development/libraries/libffi/libffi-powerpc64.patch b/pkgs/development/libraries/libffi/libffi-powerpc64.patch
new file mode 100644
index 00000000000..5748ac08498
--- /dev/null
+++ b/pkgs/development/libraries/libffi/libffi-powerpc64.patch
@@ -0,0 +1,23 @@
+https://github.com/libffi/libffi/issues/668
+--- a/src/powerpc/linux64.S
++++ b/src/powerpc/linux64.S
+@@ -29,6 +29,8 @@
+ #include <fficonfig.h>
+ #include <ffi.h>
+ 
++	.machine altivec
++
+ #ifdef POWERPC64
+ 	.hidden	ffi_call_LINUX64
+ 	.globl	ffi_call_LINUX64
+--- a/src/powerpc/linux64_closure.S
++++ b/src/powerpc/linux64_closure.S
+@@ -30,6 +30,8 @@
+ 
+ 	.file	"linux64_closure.S"
+ 
++	.machine altivec
++
+ #ifdef POWERPC64
+ 	FFI_HIDDEN (ffi_closure_LINUX64)
+ 	.globl  ffi_closure_LINUX64
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 0906d7b967c..fb2d4aa69c9 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -45,8 +45,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
-    "--enable-gtk-doc"
-    "--enable-introspection"
+    "--enable-gtk-doc=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "yes" else "no"}"
+    "--enable-introspection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "yes" else "no"}"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 24b147d142d..3b23402fe33 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libusb";
-  version = "1.0.25";
+  version = "1.0.26";
 
   src = fetchFromGitHub {
     owner = "libusb";
     repo = "libusb";
     rev = "v${version}";
-    sha256 = "141wygijjcgka0h31504cdlvih4l2j02j67pcbb2l527p7dbc5pn";
+    sha256 = "sha256-LEy45YiFbueCCi8d2hguujMsxBezaTUERHUpFsTKGZQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 14eb3c047e2..13e34bebee6 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -1,12 +1,15 @@
 { lib, stdenv, fetchzip
 , boost, cairo, freetype, gdal, harfbuzz, icu, libjpeg, libpng, libtiff
 , libwebp, libxml2, proj, python3, python ? python3, sqlite, zlib
+, sconsPackages
 
 # supply a postgresql package to enable the PostGIS input plugin
 , postgresql ? null
 }:
 
-stdenv.mkDerivation rec {
+let
+  scons = sconsPackages.scons_3_0_1;
+in stdenv.mkDerivation rec {
   pname = "mapnik";
   version = "3.1.0";
 
@@ -16,10 +19,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qqPqN4vs3ZsqKgnx21yQhX8OzHca/0O+3mvQ/vnC5EY=";
   };
 
+  postPatch = ''
+    substituteInPlace configure \
+      --replace '$PYTHON scons/scons.py' ${scons}/bin/scons
+    rm -r scons
+  '';
+
   # a distinct dev output makes python-mapnik fail
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ python3 ];
+  nativeBuildInputs = [ scons ];
 
   buildInputs = [
     boost cairo freetype gdal harfbuzz icu libjpeg libpng libtiff
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 8954eae19b4..0e10135d3d3 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -34,7 +34,8 @@ with lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "22.0.4";
+  # 22.1 on darwin won't build: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6519
+  version = if stdenv.isDarwin then "22.0.4" else "22.1.1";
   branch  = versions.major version;
 
 self = stdenv.mkDerivation {
@@ -48,7 +49,10 @@ self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "1m0y8wgy48hmcidsr7sbk5hcw3v0qr8359fd2x34fvl2z9c1z5y7";
+    sha256 = {
+      "22.1.1" = "1w8fpki67238l4yc92hsnsh4402py9zspirbmirxp577zxjhi526";
+      "22.0.4" = "1m0y8wgy48hmcidsr7sbk5hcw3v0qr8359fd2x34fvl2z9c1z5y7";
+    }.${version};
   };
 
   # TODO:
diff --git a/pkgs/development/libraries/nss/esr.nix b/pkgs/development/libraries/nss/esr.nix
index a958fa059d6..a789f0306d3 100644
--- a/pkgs/development/libraries/nss/esr.nix
+++ b/pkgs/development/libraries/nss/esr.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "3.68.3";
-  sha256 = "sha256-5NDZsLVhfLM0gSZC7YAfjlH1mVyN2FwN78jMra/Lwzc=";
+  version = "3.68.4";
+  hash = "sha256-K5/T9aG0nzs7KdEgAmdPcEgRViV1b7R3KELsfDm+Fgs=";
 }
diff --git a/pkgs/development/libraries/nss/generic.nix b/pkgs/development/libraries/nss/generic.nix
index 3affffda082..9a3d7bdfe27 100644
--- a/pkgs/development/libraries/nss/generic.nix
+++ b/pkgs/development/libraries/nss/generic.nix
@@ -1,4 +1,4 @@
-{ version, sha256 }:
+{ version, hash }:
 { lib
 , stdenv
 , fetchurl
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    inherit sha256;
+    inherit hash;
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
index 622c9fca858..fa99543eb37 100644
--- a/pkgs/development/libraries/nss/latest.nix
+++ b/pkgs/development/libraries/nss/latest.nix
@@ -5,6 +5,6 @@
 #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
 
 import ./generic.nix {
-  version = "3.78";
-  sha256 = "sha256-9FXzQeeHwRZzKOgKhPd7mlV9WVBm3aZIahh01y2miAA=";
+  version = "3.79";
+  hash = "sha256-698tapZhO2/nCtV56fmD4OlOARAXHPspmdtjPTOUpRQ=";
 }
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index c57aa560fc2..551a0827eee 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 
 # dependencies
 , cyrus_sasl
@@ -21,6 +22,39 @@ stdenv.mkDerivation rec {
     hash = "sha256-gdCTRSMutiSG7PWsrNLFbAxFtKbIwGZhLn9CGiOhz4c";
   };
 
+  patches = [
+    # ITS#9840 - ldif-filter: fix parallel build failure
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/7d977f51e6dfa570a471d163b9e8255bdd3dc12f.patch";
+      hash = "sha256:1vid6pj2gmqywbghnd380x19ml241ldc1fyslb6br6q27zpgbdlp";
+    })
+    # ITS#9840 - libraries/Makefile.in: ignore the mkdir errors
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/71f24015c312171c00ce94c9ff9b9c6664bdca8d.patch";
+      hash = "sha256:1a81vv6nkhgiadnj4g1wyzgzdp2zd151h0vkwvv9gzmqvhwcnc04";
+    })
+    # ITS#7165 back-mdb: check for stale readers on
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/7e7f01c301db454e8c507999c77b55a1d97efc21.patch";
+      hash = "sha256:1fc2yck2gn3zlpfqjdn56ar206npi8cmb8yg5ny4lww0ygmyzdfz";
+    })
+    # ITS#9858 back-mdb: delay indexer task startup
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/ac061c684cc79d64ab4089fe3020921a0064a307.patch";
+      hash = "sha256:01f0y50zlcj6n5mfkmb0di4p5vrlgn31zccx4a9k5m8vzxaqmw9d";
+    })
+    # ITS#9858 back-mdb: fix index reconfig
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/c43c7a937cfb3a781f99b458b7ad71eb564a2bc2.patch";
+      hash = "sha256:02yh0c8cyx14iir5qhfam5shrg5d3115s2nv0pmqdj6najrqc5mm";
+    })
+    # ITS#9157: check for NULL ld
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/6675535cd6ad01f9519ecd5d75061a74bdf095c7.patch";
+      hash = "sha256:0dali5ifcwba8400s065f0fizl9h44i0mzb06qgxhygff6yfrgif";
+    })
+  ];
+
   # TODO: separate "out" and "bin"
   outputs = [
     "out"
@@ -59,7 +93,7 @@ stdenv.mkDerivation rec {
     "ac_cv_func_memcmp_working=yes"
   ] ++ lib.optional stdenv.isFreeBSD "--with-pic";
 
-  makeFlags= [
+  makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
     "STRIP="  # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase.
     "prefix=${placeholder "out"}"
@@ -81,7 +115,7 @@ stdenv.mkDerivation rec {
   ];
 
   postBuild = ''
-    for module in ${lib.concatStringsSep " " extraContribModules}; do
+    for module in $extraContribModules; do
       make $makeFlags CC=$CC -C contrib/slapd-modules/$module
     done
   '';
@@ -105,7 +139,7 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    for module in ${lib.concatStringsSep " " extraContribModules}; do
+    for module in $extraContribModules; do
       make $installFlags install -C contrib/slapd-modules/$module
     done
     chmod +x "$out"/lib/*.{so,dylib}
@@ -116,6 +150,6 @@ stdenv.mkDerivation rec {
     description = "An open source implementation of the Lightweight Directory Access Protocol";
     license = licenses.openldap;
     maintainers = with maintainers; [ ajs124 das_j hexa ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 96d8c9c2052..8d28ef5ad74 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -6,7 +6,9 @@
 , python3
 , meson
 , ninja
+, eudev
 , systemd
+, enableSystemd ? true
 , pkg-config
 , docutils
 , doxygen
@@ -127,8 +129,8 @@ let
       vulkan-headers
       vulkan-loader
       webrtc-audio-processing
-      systemd
-    ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
+    ] ++ (if enableSystemd then [ systemd ] else [ eudev ])
+    ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
     ++ lib.optionals libcameraSupport [ libcamera libdrm ]
     ++ lib.optional ffmpegSupport ffmpeg
     ++ lib.optionals bluezSupport [ bluez libfreeaptx ldacbt sbc fdk_aac ]
@@ -153,7 +155,9 @@ let
       "-Dlibpulse=${mesonEnableFeature pulseTunnelSupport}"
       "-Davahi=${mesonEnableFeature zeroconfSupport}"
       "-Dgstreamer=${mesonEnableFeature gstreamerSupport}"
-      "-Dsystemd-system-service=enabled"
+      "-Dsystemd-system-service=${mesonEnableFeature enableSystemd}"
+      "-Dudev=${mesonEnableFeature (!enableSystemd)}"
+      "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
       "-Dffmpeg=${mesonEnableFeature ffmpegSupport}"
       "-Dbluez5=${mesonEnableFeature bluezSupport}"
       "-Dbluez5-backend-hsp-native=${mesonEnableFeature nativeHspSupport}"
@@ -193,8 +197,11 @@ let
         cp ${buildPackages.pipewire}/nix-support/*.json "$out/nix-support"
       ''}
 
-      moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
-      moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
+      ${lib.optionalString enableSystemd ''
+        moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
+        moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
+      ''}
+
       moveToOutput "bin/pipewire-pulse" "$pulse"
 
       moveToOutput "bin/pw-jack" "$jack"
diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix
index c1c76a90017..22ff1e450c1 100644
--- a/pkgs/development/libraries/portaudio/default.nix
+++ b/pkgs/development/libraries/portaudio/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , alsa-lib
 , pkg-config
+, which
 , AudioUnit
 , AudioToolbox
 , CoreAudio
@@ -18,7 +19,8 @@ stdenv.mkDerivation rec {
     sha256 = "1vrdrd42jsnffh6rq8ap2c6fr4g9fcld89z649fs06bwqx1bzvs7";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  strictDeps = true;
+  nativeBuildInputs = [ pkg-config which ];
   buildInputs = lib.optional (!stdenv.isDarwin) alsa-lib;
 
   configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
@@ -34,6 +36,11 @@ stdenv.mkDerivation rec {
   #     https://github.com/PortAudio/portaudio/commit/28d2781d9216115543aa3f0a0ffb7b4ee0fac551.patch
   enableParallelBuilding = false;
 
+  postPatch = ''
+    # workaround for the configure script which expects an absolute path
+    export AR=$(which $AR)
+  '';
+
   # not sure why, but all the headers seem to be installed by the make install
   installPhase = ''
     make install
diff --git a/pkgs/development/libraries/thrift/default.nix b/pkgs/development/libraries/thrift/default.nix
index f85e56578bb..f54288b5a3f 100644
--- a/pkgs/development/libraries/thrift/default.nix
+++ b/pkgs/development/libraries/thrift/default.nix
@@ -1,5 +1,15 @@
-{ lib, stdenv, fetchurl, boost, zlib, libevent, openssl, python3, cmake, pkg-config
-, bison, flex
+{ lib
+, stdenv
+, fetchurl
+, boost
+, zlib
+, libevent
+, openssl
+, python3
+, cmake
+, pkg-config
+, bison
+, flex
 , static ? stdenv.hostPlatform.isStatic
 }:
 
@@ -12,15 +22,39 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-9GC1wcow2JGP+V6j62KRs5Uc9RhVNWYIjz8r6JgfYgk=";
   };
 
-  # Workaround to make the python wrapper not drop this package:
+  # Workaround to make the Python wrapper not drop this package:
   # pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
   pythonPath = [];
 
-  nativeBuildInputs = [ cmake pkg-config bison flex ];
-  buildInputs = [ boost zlib libevent openssl ]
-    ++ lib.optionals (!static) [ (python3.withPackages (ps: [ps.twisted])) ];
+  nativeBuildInputs = [
+    bison
+    cmake
+    flex
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    libevent
+    openssl
+    zlib
+  ] ++ lib.optionals (!static) [
+    (python3.withPackages (ps: [ps.twisted]))
+  ];
+
+  postPatch = ''
+    # Python 3.10 related failures:
+    # SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
+    # AttributeError: module 'collections' has no attribute 'Hashable'
+    substituteInPlace test/py/RunClientServer.py \
+      --replace "'FastbinaryTest.py'," "" \
+      --replace "'TestEof.py'," "" \
+      --replace "'TestFrozen.py'," ""
+  '';
 
-  preConfigure = "export PY_PREFIX=$out";
+  preConfigure = ''
+    export PY_PREFIX=$out
+  '';
 
   patches = [
     # ToStringTest.cpp is failing from some reason due to locale issue, this
@@ -43,12 +77,12 @@ stdenv.mkDerivation rec {
   disabledTests = [
     "PythonTestSSLSocket"
   ] ++ lib.optionals stdenv.isDarwin [
-    # tests that hang up in the darwin sandbox
+    # Tests that hang up in the Darwin sandbox
     "SecurityTest"
     "SecurityFromBufferTest"
     "python_test"
 
-    # tests that fail in the darwin sandbox when trying to use network
+    # Tests that fail in the Darwin sandbox when trying to use network
     "UnitTests"
     "TInterruptTest"
     "TServerIntegrationTest"
@@ -62,6 +96,7 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = !static;
+
   checkPhase = ''
     runHook preCheck
 
@@ -69,6 +104,7 @@ stdenv.mkDerivation rec {
 
     runHook postCheck
   '';
+
   enableParallelChecking = false;
 
   meta = with lib; {
@@ -76,6 +112,6 @@ stdenv.mkDerivation rec {
     homepage = "https://thrift.apache.org/";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 5cb3dc73daa..8489655dcb6 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tracker";
-  version = "3.3.0";
+  version = "3.3.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Bwb5b+f5XfQqzsgSwd57RZOg1kgyHKg1BqnXHiJBe9o=";
+    sha256 = "Wtb1vJd4Hr9V7NaUfNSuf/QZJRZYDRC9g4Dx3UcZbtI=";
   };
 
   nativeBuildInputs = [
@@ -79,11 +79,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postPatch = ''
-    patchShebangs utils/g-ir-merge/g-ir-merge
     patchShebangs utils/data-generators/cc/generate
-    patchShebangs tests/functional-tests/test-runner.sh.in
-    patchShebangs tests/functional-tests/*.py
-    patchShebangs examples/python/endpoint.py
   '';
 
   preCheck = ''
diff --git a/pkgs/development/libraries/unicorn/default.nix b/pkgs/development/libraries/unicorn/default.nix
index 30ceba76163..e558bbbbb54 100644
--- a/pkgs/development/libraries/unicorn/default.nix
+++ b/pkgs/development/libraries/unicorn/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , cmake
@@ -7,17 +8,23 @@
 
 stdenv.mkDerivation rec {
   pname = "unicorn";
-  version = "2.0.0-rc5";
+  version = "2.0.0-rc7";
 
   src = fetchFromGitHub {
     owner = "unicorn-engine";
     repo = pname;
     rev = version;
-    sha256 = "1q9k8swnq4qsi54zdfaap69z56w3yj4n4ggm9pscmmmr69nply5f";
+    hash = "sha256-qlxtFCJBmouPuUEu8RduZM+rbOr52sGjdb8ZRHWmJ/w=";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    IOKit
+  ];
 
   meta = with lib; {
     description = "Lightweight multi-platform CPU emulator library";
diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix
index f4fa0611281..336dd5b3257 100644
--- a/pkgs/development/libraries/xxHash/default.nix
+++ b/pkgs/development/libraries/xxHash/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, fetchurl
+}:
 
 stdenv.mkDerivation rec {
   pname = "xxHash";
@@ -11,21 +16,27 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-2WoYCO6QRHWrbGP2mK04/sLNTyQLOuL3urVktilAwMA=";
   };
 
-  # Upstream Makefile does not anticipate that user may not want to
-  # build .so library.
-  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
-    sed -i 's/lib: libxxhash.a libxxhash/lib: libxxhash.a/' Makefile
-    sed -i '/LIBXXH) $(DESTDIR/ d' Makefile
-  '';
+  patches = [
+    # Merged in https://github.com/Cyan4973/xxHash/pull/649
+    # Should be present in next release
+    (fetchurl {
+      name = "cmakeinstallfix.patch";
+      url = "https://github.com/Cyan4973/xxHash/commit/636f966ecc713c84ddd3b7ccfde2bfb2cc7492a0.patch";
+      hash = "sha256-fj+5V5mDhFgWGvrG1E4fEekL4eh7as0ouVvY4wnIHjs=";
+    })
+  ];
 
-  outputs = [ "out" "dev" ];
 
-  makeFlags = [ "PREFIX=$(dev)" "EXEC_PREFIX=$(out)" ];
+  nativeBuildInputs = [
+    cmake
+  ];
 
-  # pkgs/build-support/setup-hooks/compress-man-pages.sh hook fails
-  # to compress symlinked manpages. Avoid compressing manpages until
-  # it's fixed.
-  dontGzipMan = true;
+  # Using unofficial CMake build script to install CMake module files.
+  cmakeDir = "../cmake_unofficial";
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
 
   meta = with lib; {
     description = "Extremely fast hash algorithm";
@@ -39,6 +50,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Cyan4973/xxHash";
     license = with licenses; [ bsd2 gpl2 ];
     maintainers = with maintainers; [ orivej ];
-    platforms = platforms.unix;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch b/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch
new file mode 100644
index 00000000000..85a6a7e3ab4
--- /dev/null
+++ b/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch
@@ -0,0 +1,51 @@
+From ec3df00224d4b396e2ac6586ab5d25f673caa4c2 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Wed, 30 Mar 2022 11:14:53 -0700
+Subject: [PATCH] Correct incorrect inputs provided to the CRC functions.
+
+The previous releases of zlib were not sensitive to incorrect CRC
+inputs with bits set above the low 32. This commit restores that
+behavior, so that applications with such bugs will continue to
+operate as before.
+---
+ crc32.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/crc32.c b/crc32.c
+index a1bdce5c2..451887bc7 100644
+--- a/crc32.c
++++ b/crc32.c
+@@ -630,7 +630,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
+ #endif /* DYNAMIC_CRC_TABLE */
+ 
+     /* Pre-condition the CRC */
+-    crc ^= 0xffffffff;
++    crc = (~crc) & 0xffffffff;
+ 
+     /* Compute the CRC up to a word boundary. */
+     while (len && ((z_size_t)buf & 7) != 0) {
+@@ -749,7 +749,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
+ #endif /* DYNAMIC_CRC_TABLE */
+ 
+     /* Pre-condition the CRC */
+-    crc ^= 0xffffffff;
++    crc = (~crc) & 0xffffffff;
+ 
+ #ifdef W
+ 
+@@ -1077,7 +1077,7 @@ uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
+ #ifdef DYNAMIC_CRC_TABLE
+     once(&made, make_crc_table);
+ #endif /* DYNAMIC_CRC_TABLE */
+-    return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;
++    return multmodp(x2nmodp(len2, 3), crc1) ^ (crc2 & 0xffffffff);
+ }
+ 
+ /* ========================================================================= */
+@@ -1112,5 +1112,5 @@ uLong crc32_combine_op(crc1, crc2, op)
+     uLong crc2;
+     uLong op;
+ {
+-    return multmodp(op, crc1) ^ crc2;
++    return multmodp(op, crc1) ^ (crc2 & 0xffffffff);
+ }
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 6681be3c34c..1527be44f7a 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -42,6 +42,12 @@ stdenv.mkDerivation (rec {
 
   patches = [
     ./fix-configure-issue-cross.patch
+    # Starting zlib 1.2.12, zlib is stricter to incorrect CRC inputs
+    # with bits set above the low 32.
+    # see https://github.com/madler/zlib/issues/618
+    # TODO: remove the patch if upstream releases https://github.com/madler/zlib/commit/ec3df00224d4b396e2ac6586ab5d25f673caa4c2
+    # see https://github.com/NixOS/nixpkgs/issues/170539 for history.
+    ./comprehensive-crc-validation-for-wrong-implementations.patch
   ];
 
   strictDeps = true;
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index dc909f5bcee..8d89c1af8d0 100644
--- a/pkgs/development/python-modules/GitPython/default.nix
+++ b/pkgs/development/python-modules/GitPython/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "gitpython";
-  version = "3.1.25";
+  version = "3.1.27";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "gitpython-developers";
     repo = "GitPython";
     rev = version;
-    sha256 = "sha256-ienc7zvLe6t8rkMtC6wVIewUqQBFdFbLc8iPT6aPVrE=";
+    sha256 = "sha256-RA+6JFXHUQoXGErV8+aYuJPsfXzNSZK3kTm6eMbQIss=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/Rtree/default.nix b/pkgs/development/python-modules/Rtree/default.nix
index eb4dae8e3aa..0c599b18d73 100644
--- a/pkgs/development/python-modules/Rtree/default.nix
+++ b/pkgs/development/python-modules/Rtree/default.nix
@@ -1,32 +1,36 @@
-{ lib,
-  stdenv,
-  buildPythonPackage,
-  fetchPypi,
-  libspatialindex,
-  numpy,
-  pytestCheckHook
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, libspatialindex
+, numpy
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "Rtree";
-  version = "0.9.7";
+  pname = "rtree";
+  version = "1.0.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e";
+    pname = "Rtree";
+    inherit version;
+    sha256 = "sha256-0Eg0ghITRrCTuaQlGNQPkhrfRFkVt66jB+smdoyDloI=";
   };
 
-  buildInputs = [ libspatialindex ];
-
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace rtree/finder.py --replace \
-      "find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'"
+      'find_library("spatialindex_c")' '"${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}"'
   '';
 
+  buildInputs = [ libspatialindex ];
+
   checkInputs = [
     numpy
     pytestCheckHook
   ];
+
   pythonImportsCheck = [ "rtree" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
index b52760d2069..420b3aaf8b9 100644
--- a/pkgs/development/python-modules/aiomysql/default.nix
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiomysql";
-  version = "0.1.0";
+  version = "0.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TNaQ4EKiHwSmPpUco0pA5SBP3fljWQ/Kd5RLs649fu0=";
+    hash = "sha256-rYEos2RuE2xI59httYlN21smBH4/fU4uT48FWwrI6Qg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiosteamist/default.nix b/pkgs/development/python-modules/aiosteamist/default.nix
index aa7edc001de..785d0f61036 100644
--- a/pkgs/development/python-modules/aiosteamist/default.nix
+++ b/pkgs/development/python-modules/aiosteamist/default.nix
@@ -32,7 +32,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=aiosteamist" ""
+      --replace "--cov=aiosteamist" "" \
+      --replace 'xmltodict = "^0.12.0"' 'xmltodict = "*"'
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/ansible-later/default.nix b/pkgs/development/python-modules/ansible-later/default.nix
index 39a1d6d1d19..5e7f717634a 100644
--- a/pkgs/development/python-modules/ansible-later/default.nix
+++ b/pkgs/development/python-modules/ansible-later/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
       --replace " --cov=ansiblelater --cov-report=xml:coverage.xml --cov-report=term --cov-append --no-cov-on-fail" "" \
       --replace 'PyYAML = "6.0"' 'PyYAML = "*"' \
       --replace 'unidiff = "0.7.3"' 'unidiff = "*"' \
-      --replace 'jsonschema = "4.6.0"' 'jsonschema = "*"'
+      --replace 'jsonschema = "' 'jsonschema = "^'
   '';
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
index 0fade1362c9..d0e8d4fab43 100644
--- a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
+++ b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
@@ -9,8 +9,9 @@ buildPythonPackage rec {
 
   sourceRoot = "source/runtime/Python3";
 
+  # in 4.9, test was renamed to tests
   checkPhase = ''
-    cd test
+    cd test*
     ${python.interpreter} ctest.py
   '';
 
diff --git a/pkgs/development/python-modules/apipkg/default.nix b/pkgs/development/python-modules/apipkg/default.nix
index 241ddfaa11a..1b6528ab300 100644
--- a/pkgs/development/python-modules/apipkg/default.nix
+++ b/pkgs/development/python-modules/apipkg/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "apipkg";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4be31cf8081e660d2cdea6edfb8a0f39f385866abdcfcfa45e5a0887345cb70";
+    sha256 = "sha256-zKNAIkFKE5duM6HjjWoJBWfve2jQNy+SPGmaj4wIivw=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 2ea9f4130f9..4ccbe3175cc 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -6,11 +6,10 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
-, fetchpatch
 }:
 
 buildPythonPackage rec {
-  version = "3.5.0";
+  version = "3.5.2";
   pname = "asgiref";
   format = "setuptools";
 
@@ -20,17 +19,9 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eWDsd8iWK1C/X3t/fKAM1i4hyTM/daGTd8CDSgDTL/U=";
+    sha256 = "sha256-56suF63ePRDprqODhVIPCEGiO8UGgWrpwg2wYEs6OOE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "remove-sock-nonblock-in-tests.patch";
-      url = "https://github.com/django/asgiref/commit/d451a724c93043b623e83e7f86743bbcd9a05c45.patch";
-      sha256 = "0whdsn5isln4dqbqqngvsy4yxgaqgpnziz0cndj1zdxim8cdicj7";
-    })
-  ];
-
   propagatedBuildInputs = [
     async-timeout
   ];
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index 539787403c6..dc28b10d7b9 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -5,17 +5,18 @@
 , pythonOlder
 , isPyPy
 , lazy-object-proxy
-, wrapt
+, setuptools
+, setuptools-scm
 , typing-extensions
 , typed-ast
-, pytestCheckHook
-, setuptools-scm
 , pylint
+, pytestCheckHook
+, wrapt
 }:
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.11.2"; # Check whether the version is compatible with pylint
+  version = "2.11.5"; # Check whether the version is compatible with pylint
 
   disabled = pythonOlder "3.6.2";
 
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-adnvJCchsMWQxsIlenndUb6Mw1MgCNAanZcTmssmsEc=";
+    sha256 = "sha256-GKda3hNdOrsd11pi+6NpYodW4TAgSvqbv2hF4GaIvtM=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -34,19 +35,19 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     lazy-object-proxy
+    setuptools
     wrapt
   ] ++ lib.optionals (pythonOlder "3.10") [
     typing-extensions
-  ] ++ lib.optional (!isPyPy && pythonOlder "3.8") typed-ast;
+  ] ++ lib.optionals (!isPyPy && pythonOlder "3.8") [
+    typed-ast
+  ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
   disabledTests = [
-    # assert (1, 1) == (1, 16)
-    "test_end_lineno_string"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
     # AssertionError: Lists differ: ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'Protocol', 'object'] != ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'object']
     "test_mro_typing_extensions"
   ];
@@ -59,7 +60,6 @@ buildPythonPackage rec {
     description = "An abstract syntax tree for Python with inference support";
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl21Plus;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/audible/default.nix b/pkgs/development/python-modules/audible/default.nix
index 987859fbcdd..2d4f3ac4df0 100644
--- a/pkgs/development/python-modules/audible/default.nix
+++ b/pkgs/development/python-modules/audible/default.nix
@@ -14,10 +14,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ beautifulsoup4 httpx pbkdf2 pillow pyaes rsa ];
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'httpx>=0.20.*,<=0.22.*' 'httpx'
+    sed -i "s/httpx.*/httpx',/" setup.py
   '';
 
+  # has no tests
+  doCheck = false;
+
   pythonImportsCheck = [ "audible"];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/azure-data-tables/default.nix b/pkgs/development/python-modules/azure-data-tables/default.nix
new file mode 100644
index 00000000000..7f2933e01a5
--- /dev/null
+++ b/pkgs/development/python-modules/azure-data-tables/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-data-tables";
+  version = "12.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "sha256-3V/I3pHi+JCO+kxkyn9jz4OzBoqbpCYpjeO1QTnpZlw=";
+  };
+
+  propagatedBuildInputs = [
+    azure-core
+    msrest
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "azure.data.tables" ];
+
+  meta = with lib; {
+    description = "NoSQL data storage service that can be accessed from anywhere";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
index ce17bc60de5..aa9d27e680e 100644
--- a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  preBuild = ''
+    rm -f azure_bdist_wheel.py
+    substituteInPlace setup.cfg \
+      --replace "azure-namespace-package = azure-mgmt-nspkg" ""
+  '';
+
   pythonNamespaces = [ "azure.mgmt" ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index ae6d9755171..83e1163df46 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerinstance";
-  version = "9.1.0";
+  version = "9.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "22164b0c59138b37bc48ba6d476bf635152bc428dcb420b521a14b8c25c797ad";
+    sha256 = "sha256-3rElVUvbGqF99ppZanUUrwFGtCAXak2zhMVOd6n9bkY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
index fae7318cd48..dc86f5acd73 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "9.1.0";
+  version = "10.0.0";
   pname = "azure-mgmt-containerregistry";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jkzGLDqrJgwCnz27lGzFk4d2q+j0P+PU8uUVGQg7MkA=";
+    sha256 = "sha256-HjejK28Em5AeoQ20o4fucnXTlAwADF/SEpVfHn9anZk=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index a44825b55bd..a49080152ed 100644
--- a/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  preBuild = ''
+    rm -f azure_bdist_wheel.py
+    substituteInPlace setup.cfg \
+      --replace "azure-namespace-package = azure-mgmt-nspkg" ""
+  '';
+
   pythonNamespaces = [ "azure.mgmt" ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index a64ba934887..80ce4a49538 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.11.0";
+  version = "12.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-SVNbMZC7adDZ/3o4MkaxTaTSsb3/YMrl+Rc5IMZ8p+4=";
+    sha256 = "sha256-9trwfRyobRia4VybGFnf9bcSe/JKB6S75B4LgeAdYvc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index 2a59ac00f7a..ee11ead039e 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, chardet
 , html5lib
 , lxml
 , pytestCheckHook
@@ -22,7 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-rZqlW2XvKAjrQF9Gz3Tff8twRNXLwmSH+W6y7y5DZpM=";
   };
 
+  nativeBuildInputs = [
+    sphinxHook
+  ];
+
   propagatedBuildInputs = [
+    chardet
     html5lib
     lxml
     soupsieve
@@ -31,7 +37,6 @@ buildPythonPackage rec {
   checkInputs = [
     pytestCheckHook
   ];
-  nativeBuildInputs = [ sphinxHook ];
 
   pythonImportsCheck = [
     "bs4"
diff --git a/pkgs/development/python-modules/billiard/default.nix b/pkgs/development/python-modules/billiard/default.nix
index f02bef97ba3..a2aaa1027c5 100644
--- a/pkgs/development/python-modules/billiard/default.nix
+++ b/pkgs/development/python-modules/billiard/default.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # psutil.NoSuchProcess: process no longer exists (pid=168)
+    "test_set_pdeathsig"
+  ];
+
   pythonImportsCheck = [
     "billiard"
   ];
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 52b8d8d37fc..6774189043c 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -4,7 +4,6 @@
 , python-dateutil
 , jmespath
 , docutils
-, ordereddict
 , simplejson
 , mock
 , nose
@@ -24,7 +23,6 @@ buildPythonPackage rec {
     python-dateutil
     jmespath
     docutils
-    ordereddict
     simplejson
     urllib3
   ];
diff --git a/pkgs/development/python-modules/cachecontrol/default.nix b/pkgs/development/python-modules/cachecontrol/default.nix
index bee126fbf16..529975f1080 100644
--- a/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/pkgs/development/python-modules/cachecontrol/default.nix
@@ -7,12 +7,13 @@
 , msgpack
 , pytestCheckHook
 , pythonOlder
+, redis
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "cachecontrol";
-  version = "0.12.10";
+  version = "0.12.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,11 +22,10 @@ buildPythonPackage rec {
     owner = "ionrock";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mgvL0q10UbPHY1H3tJprke5p8qNl3HNYoeLAERZTcTs=";
+    hash = "sha256-uUPIQz/n347Q9G7NDOGuB760B/KxOglUxiS/rYjt5Po=";
   };
 
   propagatedBuildInputs = [
-    lockfile
     msgpack
     requests
   ];
@@ -34,12 +34,17 @@ buildPythonPackage rec {
     cherrypy
     mock
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.filecache;
 
   pythonImportsCheck = [
     "cachecontrol"
   ];
 
+  passthru.optional-dependencies = {
+    filecache = [ lockfile ];
+    redis = [ redis ];
+  };
+
   meta = with lib; {
     description = "Httplib2 caching for requests";
     homepage = "https://github.com/ionrock/cachecontrol";
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index f38eb328e3d..9de26ad5339 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "cachetools";
-  version = "5.0.0";
+  version = "5.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "tkem";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-urTkls1S83m7Eo7chPaQc5gxz0omZBToNYa8upQEiOo=";
+    hash = "sha256-DheHTD62f1ZxoiS0y0/CzDMHvKGmEiEUAX6oaqTpB78=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 72a5d8db39d..b32c3ecd9f8 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.24.0";
+  version = "1.27.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XIKFEPQKIV5s6sZ7LRnlTvsb3cF4KIaiVZ36cAN1AwA=";
+    sha256 = "sha256-3IKRVR1rLpOH22Mp2m0InqcPt85+jQgBSyrRL9/nMxY=";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index bc361806d87..bef7c64ea13 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2021.10.08";
+  version = "2022.05.18.1";
 
   disabled = pythonOlder "3.5";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-certifi";
     rev = version;
-    sha256 = "sha256-SFb/spVHK15b53ZG1P147DcTjs1dqR0+MBXzpE+CWpo=";
+    sha256 = "sha256-uDNVzKcT45mz0zXBwPkttKV21fEcgbRamE3+QutNLjA=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cfn-flip/default.nix b/pkgs/development/python-modules/cfn-flip/default.nix
index 105775a4547..f19a6aba260 100644
--- a/pkgs/development/python-modules/cfn-flip/default.nix
+++ b/pkgs/development/python-modules/cfn-flip/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-cfn-template-flip";
     rev = version;
-    hash = "sha256-1cV0mHc6+P0CbnLIMSSwNEzDB+1QzNjioH/EoIo40xU=";
+    hash = "sha256-lfhTR3+D1FvblhQGF83AB8+I8WDPBTmo+q22ksgDgt4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index f4272f90d62..6690a913beb 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -8,9 +8,11 @@
 , objgraph
 , path
 , portend
+, pyopenssl
 , pytest-forked
 , pytest-services
 , pytestCheckHook
+, python-memcached
 , pythonAtLeast
 , pythonOlder
 , requests-toolbelt
@@ -38,15 +40,11 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    # required
     cheroot
     portend
     more-itertools
     zc_lockfile
     jaraco_collections
-    # optional
-    routes
-    simplejson
   ];
 
   checkInputs = [
@@ -90,6 +88,15 @@ buildPythonPackage rec {
     "cherrypy"
   ];
 
+  passthru.optional-dependencies = {
+    json = [ simplejson ];
+    memcached_session = [ python-memcached ];
+    routes_dispatcher = [ routes ];
+    ssl = [ pyopenssl ];
+    # not packaged yet
+    xcgi = [ /* flup */ ];
+  };
+
   meta = with lib; {
     description = "Object-oriented HTTP framework";
     homepage = "https://www.cherrypy.org";
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index 0e0debe9329..d33f4dbee35 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,28 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, psutil
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "2.0.0";
-  disabled = isPy27; # abandoned upstream
+  version = "2.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5cd02f3b417a783ba84a4ec3e290ff7929009fe51f6405423cfccfadd43ba4a4";
+    hash = "sha256-uyM+h2pYSR2VkKZ2+Tx6VHOgj3R9Wrnff5zlZLPnk44=";
   };
 
-  buildInputs = [ pytest mock ];
+  checkInputs = [
+    psutil
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cloudpickle"
+  ];
 
-  # See README for tests invocation
-  checkPhase = ''
-    PYTHONPATH=$PYTHONPATH:'.:tests' py.test
-  '';
+  disabledTestPaths = [
+    # ModuleNotFoundError: No module named '_cloudpickle_testpkg'
+    "tests/cloudpickle_test.py"
+  ];
 
-  # TypeError: cannot serialize '_io.FileIO' object
-  doCheck = false;
+  disabledTests = [
+    # TypeError: cannot pickle 'EncodedFile' object
+    "test_pickling_special_file_handles"
+  ];
 
   meta = with lib; {
     description = "Extended pickling support for Python objects";
     homepage = "https://github.com/cloudpipe/cloudpickle";
     license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/colorama/default.nix b/pkgs/development/python-modules/colorama/default.nix
index 1d472035b2f..f362bbd30b3 100644
--- a/pkgs/development/python-modules/colorama/default.nix
+++ b/pkgs/development/python-modules/colorama/default.nix
@@ -12,10 +12,13 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
+  pythonImportsCheck = [ "colorama" ];
+
   meta = with lib; {
+    description = "Cross-platform colored terminal text";
     homepage = "https://github.com/tartley/colorama";
     license = licenses.bsd3;
-    description = "Cross-platform colored terminal text";
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/pkgs/development/python-modules/configobj/default.nix b/pkgs/development/python-modules/configobj/default.nix
index 746c5f35f25..3ea89db527e 100644
--- a/pkgs/development/python-modules/configobj/default.nix
+++ b/pkgs/development/python-modules/configobj/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
 , six
-, mock, pytest
 }:
 
 buildPythonPackage rec {
   pname = "configobj";
   version = "5.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # Pypi archives don't contain the tests
   src = fetchFromGitHub {
     owner = "DiffSK";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x97794nk3dfn0i3si9fv7y19jnpnarb34bkdwlz7ii7ag6xihhw";
+    hash = "sha256-HMLYzVMnxvMpb3ORsbKy18oU/NkuRT0isK6NaUk6J3U=";
   };
 
+  propagatedBuildInputs = [
+    six
+  ];
 
-  propagatedBuildInputs = [ six ];
-
-  checkPhase = ''
-    pytest --deselect=tests/test_configobj.py::test_options_deprecation
-  '';
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
-  checkInputs = [ mock pytest ];
+  pythonImportsCheck = [
+    "configobj"
+  ];
 
   meta = with lib; {
     description = "Config file reading, writing and validation";
diff --git a/pkgs/development/python-modules/constantly/default.nix b/pkgs/development/python-modules/constantly/default.nix
index e3a9c642f47..b75eca71636 100644
--- a/pkgs/development/python-modules/constantly/default.nix
+++ b/pkgs/development/python-modules/constantly/default.nix
@@ -9,6 +9,8 @@ buildPythonPackage rec {
     sha256 = "0dgwdla5kfpqz83hfril716inm41hgn9skxskvi77605jbmp4qsq";
   };
 
+  pythonImportsCheck = [ "constantly" ];
+
   meta = with lib; {
     homepage = "https://github.com/twisted/constantly";
     description = "symbolic constant support";
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index b4048366ed5..08314f71308 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -12,7 +12,9 @@
 , isPyPy
 , cffi
 , pytestCheckHook
+, pytest-benchmark
 , pytest-subtests
+, pythonOlder
 , pretend
 , libiconv
 , iso8601
@@ -25,18 +27,19 @@ let
 in
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "36.0.2"; # Also update the hash in vectors.nix
+  version = "37.0.2"; # Also update the hash in vectors.nix
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cPj097sqyfNAZVy6yJ1oxSevW7Q4dSKoQT6EHj5mKMk=";
+    sha256 = "sha256-8iStJTzJzqdWj0kHcAfSJj76VzlqLy94EUBm/VS1xo4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "sha256-6C4N445h4Xf2nCc9rJWpSZaNPilR9GfgbmKvNlSIFqg=";
+    sha256 = "sha256-qvrxvneoBXjP96AnUPyrtfmCnZo+IriHR5HbtWQ5Gk8=";
   };
 
   cargoRoot = "src/rust";
@@ -63,6 +66,7 @@ buildPythonPackage rec {
     iso8601
     pretend
     pytestCheckHook
+    pytest-benchmark
     pytest-subtests
     pytz
   ];
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index 99372090726..d2c2beb9aba 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -8,7 +8,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cryptography_vectors";
     inherit version;
-    sha256 = "sha256-KnkkRJoDAl+vf4dUpvQgAAHKshBzSmzmrB9r2s06aOQ=";
+    sha256 = "sha256-fGXT3lF1b0GBQt9gVBfsLG6WHDZPcMyKEDAwiJ1aMhk=";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix
index 265504938df..39cdd6fb972 100644
--- a/pkgs/development/python-modules/cssutils/default.nix
+++ b/pkgs/development/python-modules/cssutils/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "2.4.0";
+  version = "2.4.1";
 
   disabled = pythonOlder "3.7";
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LZchCoOwo/4eRGn1/5pkILB4VyA1GIsbq3EDw6NtyJs=";
+    hash = "sha256-+Gicb66TTLanB3xwZvLGAmwOkN560wqBaz9tWaE41jg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-gateway-server/default.nix b/pkgs/development/python-modules/dask-gateway-server/default.nix
index f55a2fe7509..5ef21c545fa 100644
--- a/pkgs/development/python-modules/dask-gateway-server/default.nix
+++ b/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -1,25 +1,31 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , aiohttp
+, buildPythonPackage
 , colorlog
 , cryptography
-, traitlets
+, fetchFromGitHub
 , go
-, isPy27
+, pythonOlder
+, traitlets
 }:
 
 buildPythonPackage rec {
   pname = "dask-gateway-server";
   # update dask-gateway-server lock step with dask-gateway
-  version = "0.9.0";
-  disabled = isPy27;
+  version = "2022.4.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "82bca8a98fc1dbda9f67c8eceac59cb92abe07db6227c120a1eb1d040ea40fda";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "dask-gateway";
+    rev = version;
+    hash = "sha256-Grjp7gt3Pos4cQSGV/Rynz6W/zebRI0OqDiWT4cTh8I=";
   };
 
+  sourceRoot = "${src.name}/${pname}";
+
   nativeBuildInputs = [
     go
   ];
@@ -36,15 +42,17 @@ buildPythonPackage rec {
     export GO111MODULE=off
   '';
 
-  # tests requires cluster for testing
+  # Tests requires cluster for testing
   doCheck = false;
 
-  pythonImportsCheck = [ "dask_gateway_server" ];
+  pythonImportsCheck = [
+    "dask_gateway_server"
+  ];
 
   meta = with lib; {
     description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index 9072a691c20..bd9b468064d 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -1,33 +1,63 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , cloudpickle
 , dask
-, numpy, toolz # dask[array]
+, distributed
+, fetchPypi
 , multipledispatch
-, setuptools-scm
-, scipy
-, scikit-learn
 , pytestCheckHook
+, pythonOlder
+, scikit-learn
+, scipy
+, setuptools-scm
+, sparse
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
   pname = "dask-glm";
+  version = "0.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b86cebf04fe5b9e58092e1c467e32e60d01e11b71fdc628baaa9fc6d1adee5";
+    hash = "sha256-WLhs6/BP5bnlgJLhxGfjLmDQHhG3H9xii6qp/G0a3uU=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
-  checkInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ cloudpickle dask numpy toolz multipledispatch scipy scikit-learn ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cloudpickle
+    distributed
+    multipledispatch
+    scikit-learn
+    scipy
+    sparse
+  ] ++ dask.optional-dependencies.array;
+
+  checkInputs = [
+    sparse
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dask_glm"
+  ];
+
+  disabledTestPaths = [
+    # Circular dependency with dask-ml
+    "dask_glm/tests/test_estimators.py"
+    # Test tries to imort an obsolete method
+    "dask_glm/tests/test_utils.py"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/dask/dask-glm/";
     description = "Generalized Linear Models with Dask";
+    homepage = "https://github.com/dask/dask-glm/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index d069532cffa..ee3365955db 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -13,7 +13,6 @@
 , scikit-learn
 , scipy
 , setuptools-scm
-, toolz
 }:
 
 buildPythonPackage rec {
@@ -33,7 +32,6 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    dask
     dask-glm
     distributed
     multipledispatch
@@ -43,8 +41,8 @@ buildPythonPackage rec {
     pandas
     scikit-learn
     scipy
-    toolz
-  ];
+  ] ++ dask.optional-dependencies.array
+    ++ dask.optional-dependencies.dataframe;
 
   # has non-standard build from source, and pypi doesn't include tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 59869efbffd..3aec3e25228 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -4,6 +4,7 @@
 , buildPythonPackage
 , cloudpickle
 , distributed
+, fastparquet
 , fetchFromGitHub
 , fetchpatch
 , fsspec
@@ -12,17 +13,20 @@
 , packaging
 , pandas
 , partd
+, pyarrow
 , pytest-rerunfailures
 , pytest-xdist
 , pytestCheckHook
 , pythonOlder
 , pyyaml
+, scipy
 , toolz
+, zarr
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2022.02.1";
+  version = "2022.05.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +35,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    hash = "sha256-A8ktvfpow/QKAEEt9SUnkTqYFJCrV1mgnuDIP3gdyrE=";
+    hash = "sha256-8M70Pf31PhYnBPRhSG55eWg6gK0lxsIFKF+cRCsf0/U=";
   };
 
   propagatedBuildInputs = [
@@ -41,48 +45,71 @@ buildPythonPackage rec {
     partd
     pyyaml
     toolz
-    pandas
-    jinja2
-    bokeh
-    numpy
   ];
 
-  doCheck = true;
+  passthru.optional-dependencies = {
+    array = [
+      numpy
+    ];
+    complete = [
+      distributed
+    ];
+    dataframe = [
+      numpy
+      pandas
+    ];
+    distributed = [
+      distributed
+    ];
+    diagnostics = [
+      bokeh
+      jinja2
+    ];
+  };
 
   checkInputs = [
+    fastparquet
+    pyarrow
     pytestCheckHook
     pytest-rerunfailures
     pytest-xdist
+    scipy
+    zarr
   ];
 
   dontUseSetuptoolsCheck = true;
 
   postPatch = ''
-    # versioneer hack to set version of github package
+    # versioneer hack to set version of GitHub package
     echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
 
     substituteInPlace setup.py \
       --replace "version=versioneer.get_version()," "version='${version}'," \
       --replace "cmdclass=versioneer.get_cmdclass()," ""
+
+    substituteInPlace setup.cfg \
+      --replace " --durations=10" "" \
+      --replace " -v" ""
   '';
 
   pytestFlagsArray = [
-    # rerun failed tests up to three times
+    # Rerun failed tests up to three times
     "--reruns 3"
-    # don't run tests that require network access
+    # Don't run tests that require network access
     "-m 'not network'"
+    # Ignore warning about pyarrow 5.0.0 feautres
+    "-W"
+    "ignore::FutureWarning"
   ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
-    # this test requires features of python3Packages.psutil that are
+    # Test requires features of python3Packages.psutil that are
     # blocked in sandboxed-builds
     "test_auto_blocksize_csv"
+    # AttributeError: 'str' object has no attribute 'decode'
+    "test_read_dir_nometa"
   ] ++ [
-    # A deprecation warning from newer sqlalchemy versions makes these tests
-    # to fail https://github.com/dask/dask/issues/7406
-    "test_sql"
-    # Test interrupt fails intermittently https://github.com/dask/dask/issues/2192
-    "test_interrupt"
+    "test_chunksize_files"
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -98,10 +125,6 @@ buildPythonPackage rec {
     "dask.diagnostics"
   ];
 
-  passthru.optional-dependencies = {
-    complete = [ distributed ];
-  };
-
   meta = with lib; {
     description = "Minimal task scheduling abstraction";
     homepage = "https://dask.org/";
diff --git a/pkgs/development/python-modules/databases/default.nix b/pkgs/development/python-modules/databases/default.nix
index 518d2066853..05431026ec8 100644
--- a/pkgs/development/python-modules/databases/default.nix
+++ b/pkgs/development/python-modules/databases/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "databases";
-  version = "0.5.5";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    hash = "sha256-NOXK1UCQzqvJRfzsgIfpihuD9oF52sMD+BxqUHWF8Rk=";
+    hash = "sha256-5+x735EFX9B25HgXiqzUJm0nbF7tDF5FOQVnbYQyomE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 2055c9de13e..426ee110790 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -1,57 +1,55 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , click
 , cloudpickle
 , dask
+, fetchPypi
+, jinja2
+, locket
 , msgpack
+, packaging
 , psutil
+, pythonOlder
+, pyyaml
 , sortedcontainers
 , tblib
 , toolz
 , tornado
+, urllib3
 , zict
-, pyyaml
-, mpi4py
-, bokeh
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2022.2.1";
+  version = "2022.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+2KnWvjvM7vhqoCmjAGjOpPBzVozLdAXq0SVW/fs9ls=";
+    hash = "sha256-BEqsUfpk/Z4WsaLEMVIg0oHw5cwbBfTT03hSQm8efLY=";
   };
 
   propagatedBuildInputs = [
-    bokeh
     click
     cloudpickle
     dask
-    mpi4py
+    jinja2
+    locket
     msgpack
+    packaging
     psutil
     pyyaml
     sortedcontainers
     tblib
     toolz
     tornado
+    urllib3
     zict
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "dask == 2022.02.0" "dask"
-  '';
-
-  # when tested random tests would fail and not repeatably
+  # When tested random tests would fail and not repeatably
   doCheck = false;
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index 9ce21b79492..8b3c6d0ed05 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -31,6 +31,12 @@ buildPythonPackage rec {
     hash = "sha256-2Nb+FzmhsKvauT/yOCLHCEld8r+6niu9kV6EmjhC6S0=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'fastapi = "^0.75.0"' 'fastapi = "*"' \
+      --replace 'httpx = "^0.22.0"' 'httpx = "*"'
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 3d418d75333..5366745a6f0 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -7,7 +7,6 @@
 , pytest-asyncio
 , aiosqlite
 , databases
-, fetchpatch
 , flask
 , httpx
 , passlib
@@ -20,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.75.2";
+  version = "0.78.0";
   format = "flit";
 
   disabled = pythonOlder "3.6";
@@ -29,9 +28,14 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = pname;
     rev = version;
-    hash = "sha256-B4q3Q256Sj4jTQt1TDm3fiEaQKdVxddCF9+KsxkkTWo=";
+    hash = "sha256-4JS0VLVg67O7VdcDw2k2u+98kiCdCHvCAEGHYGWEIOA=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "starlette==" "starlette>="
+  '';
+
   propagatedBuildInputs = [
     starlette
     pydantic
@@ -51,21 +55,6 @@ buildPythonPackage rec {
     trio
   ] ++ passlib.optional-dependencies.bcrypt;
 
-  patches = [
-    # Bump starlette, https://github.com/tiangolo/fastapi/pull/4483
-    (fetchpatch {
-      name = "support-later-starlette.patch";
-      # PR contains multiple commits
-      url = "https://patch-diff.githubusercontent.com/raw/tiangolo/fastapi/pull/4483.patch";
-      sha256 = "sha256-ZWaqAd/QYEYRL1hSQdXdFPgWgdmOill2GtmEn33vz2U=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "starlette ==" "starlette >="
-  '';
-
   pytestFlagsArray = [
     # ignoring deprecation warnings to avoid test failure from
     # tests/test_tutorial/test_testing/test_tutorial001.py
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 30aa6a2ab76..e11aac39f7e 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -8,28 +8,50 @@
 , cramjam
 , fsspec
 , thrift
+, python-lzo
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
   version = "0.8.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "05qb4nz87p9vnrdsyl25hdp5sj35lki64gjza5dahc89fwfdnsmd";
+    hash = "sha256-rWrbHHcJMahaUV8+YuKkZUhdboNFUK9btjvdg74lCxc=";
   };
 
+  propagatedBuildInputs = [
+    cramjam
+    fsspec
+    numba
+    numpy
+    pandas
+    thrift
+  ];
+
+  passthru.optional-dependencies = {
+    lzo = [
+      python-lzo
+    ];
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'," "" \
       --replace "oldest-supported-numpy" "numpy"
   '';
 
-  propagatedBuildInputs = [ cramjam fsspec numba numpy pandas thrift ];
-  checkInputs = [ pytestCheckHook ];
 
   # Workaround https://github.com/NixOS/nixpkgs/issues/123561
   preCheck = ''
@@ -43,7 +65,9 @@ buildPythonPackage rec {
     rm "$fastparquet_test"
   '';
 
-  pythonImportsCheck = [ "fastparquet" ];
+  pythonImportsCheck = [
+    "fastparquet"
+  ];
 
   meta = with lib; {
     description = "A python implementation of the parquet format";
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index 16379ef85e1..5fdbd8c441f 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -1,20 +1,21 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
-, setuptools-scm
 , pytestCheckHook
+, pythonOlder
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "filelock";
-  version = "3.6.0";
+  version = "3.7.1";
   format = "pyproject";
-  disabled = pythonOlder "3.6";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nNVAqTUuQyxyRqSP5OhxKxCssd8q0fMOjAcLgq4f7YU=";
+    hash = "sha256-Og/YUWatnbq1TJrslnN7dEEG3F8VwLCaZ0SkRSmfzwQ=";
   };
 
   nativeBuildInputs = [
@@ -26,8 +27,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/benediktschmitt/py-filelock";
     description = "A platform independent file lock for Python";
+    homepage = "https://github.com/benediktschmitt/py-filelock";
     license = licenses.unlicense;
     maintainers = with maintainers; [ hyphon81 ];
   };
diff --git a/pkgs/development/python-modules/flask-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
index 41822555016..c593c855c70 100644
--- a/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -6,7 +6,6 @@
 , hiro
 , limits
 , mock
-, ordereddict
 , pymemcache
 , pytestCheckHook
 , redis
@@ -32,7 +31,6 @@ buildPythonPackage rec {
     redis
     flask-restful
     pymemcache
-    ordereddict
   ];
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flickrapi/default.nix b/pkgs/development/python-modules/flickrapi/default.nix
index 8ad1071cd24..c13541acd83 100644
--- a/pkgs/development/python-modules/flickrapi/default.nix
+++ b/pkgs/development/python-modules/flickrapi/default.nix
@@ -4,6 +4,7 @@
 , requests
 , requests-toolbelt
 , requests-oauthlib
+, six
 , pytestCheckHook
 , responses
 , pythonOlder
@@ -27,6 +28,7 @@ buildPythonPackage rec {
     requests
     requests-toolbelt
     requests-oauthlib
+    six
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index a667f631eb1..ba9929caacc 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,19 +1,25 @@
 { lib
+, stdenv
 , buildPythonPackage
-, fetchFromGitHub
 , pythonOlder
-, brotlipy
-, zopfli
+, isPyPy
+, fetchFromGitHub
+, setuptools-scm
+, fs
 , lxml
+, brotli
+, brotlicffi
+, zopfli
+, unicodedata2
+, lz4
 , scipy
 , munkres
-, unicodedata2
+, matplotlib
 , sympy
-, reportlab
-, sphinx
+, xattr
+, skia-pathops
+, uharfbuzz
 , pytestCheckHook
-, glibcLocales
-, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -31,28 +37,32 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  # all dependencies are optional, but
-  # we run the checks with them
+  passthru.optional-dependencies = let
+    extras = {
+      ufo = [ fs ];
+      lxml = [ lxml ];
+      woff = [ (if isPyPy then brotlicffi else brotli) zopfli ];
+      unicode = lib.optional (pythonOlder "3.11") unicodedata2;
+      graphite = [ lz4 ];
+      interpolatable = [ (if isPyPy then munkres else scipy) ];
+      plot = [ matplotlib ];
+      symfont = [ sympy ];
+      type1 = lib.optional stdenv.isDarwin xattr;
+      pathops = [ skia-pathops ];
+      repacker = [ uharfbuzz ];
+    };
+  in extras // {
+    all = lib.concatLists (lib.attrValues extras);
+  };
 
   checkInputs = [
     pytestCheckHook
-    # etree extra
-    lxml
-    # woff extra
-    brotlipy
-    zopfli
-    # interpolatable extra
-    scipy
-    munkres
-    # symfont
-    sympy
-    # pens
-    reportlab
-    sphinx
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    # unicode extra
-    unicodedata2
-  ];
+  ] ++ lib.concatLists (lib.attrVals [
+    "woff"
+    "interpolatable"
+    "pathops"
+    "repacker"
+  ] passthru.optional-dependencies);
 
   pythonImportsCheck = [ "fontTools" ];
 
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 7ff15774889..844f3968164 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -1,29 +1,32 @@
 { lib
 , stdenv
+, aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
 , numpy
-, aiohttp
-, pytest-vcr
-, pytest-mock
+, paramiko
 , pytest-asyncio
+, pytest-mock
+, pytest-vcr
+, pytestCheckHook
+, pythonOlder
 , requests
-, paramiko
 , smbprotocol
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2022.3.0";
-  disabled = pythonOlder "3.6";
+  version = "2022.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "sha256-jTF8R0kaHMsCYg+7YFi21Homn63K+ulp9NDZC/jkIXM=";
+    hash = "sha256-WOzw9UPF8LZuOhp5p/CJUUJcYpAfixV6GiI8tfnoklc=";
   };
 
   propagatedBuildInputs = [
@@ -31,13 +34,14 @@ buildPythonPackage rec {
     paramiko
     requests
     smbprotocol
+    tqdm
   ];
 
   checkInputs = [
     numpy
-    pytest-vcr
-    pytest-mock
     pytest-asyncio
+    pytest-mock
+    pytest-vcr
     pytestCheckHook
   ];
 
@@ -58,13 +62,15 @@ buildPythonPackage rec {
     "test_touch"
   ];
 
-  pythonImportsCheck = [ "fsspec" ];
+  pythonImportsCheck = [
+    "fsspec"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/intake/filesystem_spec";
     description = "A specification that Python filesystems should adhere to";
+    homepage = "https://github.com/intake/filesystem_spec";
     changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix
index 82791db5bcc..85a88dc3d5b 100644
--- a/pkgs/development/python-modules/gcsfs/default.nix
+++ b/pkgs/development/python-modules/gcsfs/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "gcsfs";
-  version = "2022.3.0";
+  version = "2022.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "fsspec";
     repo = pname;
     rev = version;
-    hash = "sha256-+Bchwsa8Jj7WBWbzyH+GQuqZki4EltMryumKt4Pm1es=";
+    hash = "sha256-gIkK1VSg1h04+MQBoxFtXIdn80faJlgQ9ayqV5p0RMU=";
   };
 
   propagatedBuildInputs = [
@@ -55,7 +55,9 @@ buildPythonPackage rec {
     "gcsfs/tests/test_retry.py"
   ];
 
-  pytestFlagsArray = [ "-x" ];
+  pytestFlagsArray = [
+    "-x"
+  ];
 
   pythonImportsCheck = [
     "gcsfs"
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 305fd93c963..7399d141a56 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -26,7 +26,8 @@ buildPythonApplication rec {
     tqdm
     setuptools
     six
-  ];
+  ]
+  ++ requests.optional-dependencies.socks;
 
   checkPhase = ''
     $out/bin/gdown --help > /dev/null
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
index 8394f791832..79f30b89d31 100644
--- a/pkgs/development/python-modules/glances-api/default.nix
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.3.5";
+  version = "0.3.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = version;
-    sha256 = "sha256-8NWrsiiKevIMeD++C2weRdG0FPm5T4fHMUSJM4J+AOo=";
+    sha256 = "sha256-2H8S08tntCNKwMw553/wuWLXmri7b2tLxFlgCDJWQNQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index 1d2ee112a43..af46b9c675f 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -8,6 +8,7 @@
 , pythonOlder
 , requests
 , responses
+, six
 , typing-extensions
 }:
 
@@ -37,6 +38,7 @@ buildPythonPackage rec {
     mypy
     pytestCheckHook
     responses
+    six
   ];
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix
index c8725dfd116..61545e3a2ec 100644
--- a/pkgs/development/python-modules/graph-tool/default.nix
+++ b/pkgs/development/python-modules/graph-tool/default.nix
@@ -1,18 +1,34 @@
-{ fetchurl, python, cairomm, sparsehash, pycairo, autoreconfHook
-, pkg-config, boost, expat, scipy, cgal, gmp, mpfr
-, gobject-introspection, pygobject3, gtk3, matplotlib, ncurses
-, buildPythonPackage
+{ buildPythonPackage
 , lib
+, fetchurl
+
+, autoreconfHook
+, boost
+, cairomm
+, cgal
+, expat
+, gmp
+, gobject-introspection
+, gtk3
+, matplotlib
+, mpfr
+, numpy
+, pkg-config
+, pycairo
+, pygobject3
+, python
+, scipy
+, sparsehash
 }:
 
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.43";
+  version = "2.45";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    hash = "sha256-XxvuCUIgz7JIaNsPr0f44v/Sb3fdcJmVhC5NnomNqGw=";
+    hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg=";
   };
 
   configureFlags = [
@@ -23,34 +39,35 @@ buildPythonPackage rec {
     "--enable-openmp"
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ ncurses ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
+  # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation
   propagatedBuildInputs = [
     boost
+    cairomm
     cgal
     expat
     gmp
-    mpfr
-    python
-    scipy
-    # optional
-    sparsehash
-    # drawing
-    cairomm
     gobject-introspection
     gtk3
-    pycairo
     matplotlib
+    mpfr
+    numpy
+    pycairo
     pygobject3
+    scipy
+    sparsehash
   ];
 
-  enableParallelBuilding = false;
-
   meta = with lib; {
     description = "Python module for manipulation and statistical analysis of graphs";
-    homepage    = "https://graph-tool.skewed.de/";
-    license     = licenses.gpl3;
-    maintainers = [ maintainers.joelmo ];
+    homepage = "https://graph-tool.skewed.de";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 8cbee4bff70..91def6f2886 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,71 +1,73 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
-, fetchPypi
+, cairocffi
 , django
-, python-memcached
-, txamqp
 , django_tagging
+, fetchPypi
 , gunicorn
-, pytz
 , pyparsing
-, cairocffi
+, python-memcached
+, pythonOlder
+, pytz
+, six
+, txamqp
+, urllib3
 , whisper
 , whitenoise
-, urllib3
-, six
 }:
 
 buildPythonPackage rec {
   pname = "graphite-web";
-  version = "1.1.8";
+  version = "1.1.10";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54240b0f1e069b53e2ce92d4e534e21b195fb0ebd64b6ad8a49c44284e3eb0b1";
+    hash = "sha256-Pxho1QWo2jJZYAMJx999bbELDVMr7Wp7wsssYPkc01o=";
   };
 
-  patches = [
-    ./update-django-tagging.patch
-  ];
-
-  postPatch = ''
-    # https://github.com/graphite-project/graphite-web/pull/2701
-    substituteInPlace setup.py \
-      --replace "'scandir'" "'scandir; python_version < \"3.5\"'"
-  '';
-
   propagatedBuildInputs = [
+    cairocffi
     django
-    python-memcached
-    txamqp
     django_tagging
     gunicorn
-    pytz
     pyparsing
-    cairocffi
+    python-memcached
+    pytz
+    six
+    txamqp
+    urllib3
     whisper
     whitenoise
-    urllib3
-    six
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "Django>=1.8,<3.1" "Django" \
+      --replace "django-tagging==0.4.3" "django-tagging"
+  '';
+
   # Carbon-s default installation is /opt/graphite. This env variable ensures
-  # carbon is installed as a regular python module.
-  GRAPHITE_NO_PREFIX="True";
+  # carbon is installed as a regular Python module.
+  GRAPHITE_NO_PREFIX = "True";
 
   preConfigure = ''
     substituteInPlace webapp/graphite/settings.py \
       --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
   '';
 
-  pythonImportsCheck = [ "graphite" ];
+  pythonImportsCheck = [
+    "graphite"
+  ];
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    homepage = "http://graphiteapp.org/";
     description = "Enterprise scalable realtime graphing";
-    maintainers = with maintainers; [ offline basvandijk ];
+    homepage = "http://graphiteapp.org/";
     license = licenses.asl20;
+    maintainers = with maintainers; [ offline basvandijk ];
   };
 }
diff --git a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
deleted file mode 100644
index 9774f7e70a7..00000000000
--- a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index a1a21f1..f0d1051 100644
---- a/setup.py
-+++ b/setup.py
-@@ -117,7 +117,7 @@ try:
-         ['templates/*', 'local_settings.py.example']},
-       scripts=glob('bin/*'),
-       data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples,
--      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.4.3', 'pytz',
-+      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.5.0', 'pytz',
-                         'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
-       classifiers=[
-           'Intended Audience :: Developers',
diff --git a/pkgs/development/python-modules/gunicorn/default.nix b/pkgs/development/python-modules/gunicorn/default.nix
index ba948a68915..72852ae1f12 100644
--- a/pkgs/development/python-modules/gunicorn/default.nix
+++ b/pkgs/development/python-modules/gunicorn/default.nix
@@ -1,40 +1,55 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, coverage
-, mock
-, pytest
-, pytest-cov
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pythonOlder
+, eventlet
+, gevent
+, pytestCheckHook
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "gunicorn";
   version = "20.1.0";
-  disabled = isPy27;
+  disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8";
+  src = fetchFromGitHub {
+    owner = "benoitc";
+    repo = "gunicorn";
+    rev = version;
+    sha256 = "sha256-xdNHm8NQWlAlflxof4cz37EoM74xbWrNaf6jlwwzHv4=";
   };
 
-  propagatedBuildInputs = [ setuptools ];
-
-  checkInputs = [ pytest mock pytest-cov coverage ];
-
-  prePatch = ''
-    substituteInPlace requirements_test.txt --replace "==" ">=" \
-      --replace "coverage>=4.0,<4.4" "coverage"
+  patches = [
+    (fetchpatch {
+      # fix eventlet 0.30.3+ compability
+      url = "https://github.com/benoitc/gunicorn/commit/6a8ebb4844b2f28596ffe7421eb9f7d08c8dc4d8.patch";
+      sha256 = "sha256-+iApgohzPZ/cHTGBNb7XkqLaHOVVPF26BnPUsvISoZw=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=gunicorn --cov-report=xml" ""
   '';
 
-  # better than no tests
-  checkPhase = ''
-    $out/bin/gunicorn --help > /dev/null
-  '';
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  checkInputs = [
+    eventlet
+    gevent
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "gunicorn" ];
 
   meta = with lib; {
     homepage = "https://github.com/benoitc/gunicorn";
-    description = "WSGI HTTP Server for UNIX";
+    description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
index e98d844a33e..ca9a8dc5a2d 100644
--- a/pkgs/development/python-modules/gyp/default.nix
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -1,16 +1,19 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitiles
+, six
+, python
 }:
 
 buildPythonPackage {
   pname = "gyp";
-  version = "2020-05-12";
+  version = "unstable-2022-04-01";
 
   src = fetchFromGitiles {
     url = "https://chromium.googlesource.com/external/gyp";
-    rev = "caa60026e223fc501e8b337fd5086ece4028b1c6";
-    sha256 = "0r9phq5yrmj968vdvy9vivli35wn1j9a6iwshp69wl7q4p0x8q2b";
+    rev = "9ecf45e37677743503342ee4c6a76eaee80e4a7f";
+    hash = "sha256-LUlF2VhRnuDwJLdITgmXIQV/IuKdx1KXQkiPVHKrl4Q=";
   };
 
   patches = lib.optionals stdenv.isDarwin [
@@ -18,11 +21,16 @@ buildPythonPackage {
     ./no-xcode.patch
   ];
 
+  propagatedBuildInputs = [
+    six
+  ];
+
+  pythonImportsCheck = [ "gyp" "gyp.generator" ];
+
   meta = with lib; {
     description = "A tool to generate native build files";
-    homepage = "https://chromium.googlesource.com/external/gyp/+/master/README.md";
+    homepage = "https://gyp.gsrc.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ codyopel ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index edf19d0e190..3b053108424 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -25,11 +25,11 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    sed -i 's/"acme.*"/"acme"/' setup.py
     substituteInPlace setup.py \
-      --replace "cryptography>=2.8,<4.0" "cryptography" \
+      --replace "acme==" "acme>=" \
+      --replace "cryptography>=2.8,<37.0" "cryptography" \
+      --replace "pycognito==" "pycognito>=" \
       --replace "snitun==" "snitun>=" \
-      --replace "pycognito==2022.01.0" "pycognito"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/homeconnect/default.nix b/pkgs/development/python-modules/homeconnect/default.nix
index b615274416a..3d7c31dc862 100644
--- a/pkgs/development/python-modules/homeconnect/default.nix
+++ b/pkgs/development/python-modules/homeconnect/default.nix
@@ -4,6 +4,7 @@
 , requests
 , requests-oauthlib
 , pythonOlder
+, six
 }:
 
 buildPythonPackage rec {
@@ -21,6 +22,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     requests
     requests-oauthlib
+    six
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/httpbin/default.nix b/pkgs/development/python-modules/httpbin/default.nix
index a5a77a82af2..98c50fd1523 100644
--- a/pkgs/development/python-modules/httpbin/default.nix
+++ b/pkgs/development/python-modules/httpbin/default.nix
@@ -11,6 +11,7 @@
 , raven
 , six
 , pytestCheckHook
+, werkzeug
 }:
 
 buildPythonPackage rec {
@@ -34,14 +35,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     brotlipy
+    decorator
     flask
     flask-limiter
-    markupsafe
-    decorator
     itsdangerous
+    markupsafe
     raven
     six
-  ];
+    werkzeug
+  ] ++ raven.optional-dependencies.flask;
 
   checkInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index d2286b6b022..5016ece96f2 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -1,33 +1,32 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , anyio
+, buildPythonPackage
 , certifi
+, fetchFromGitHub
 , h11
 , h2
 , pproxy
 , pytest-asyncio
-, pytestCheckHook
-, pytest-cov
 , pytest-httpbin
+, pytest-trio
+, pytestCheckHook
+, pythonOlder
 , sniffio
 , socksio
-, trio
-, trustme
-, uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.14.7";
-  disabled = pythonOlder "3.6";
+  version = "0.15.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-h+3MfP1p/ifN0mF/xxrOKPTjD4Q7WzRh94YO4DYSuXE=";
+    hash = "sha256-FF3Yzac9nkVcA5bHVOz2ymvOelSfJ0K6oU8UWpBDcmo=";
   };
 
   postPatch = ''
@@ -43,23 +42,30 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    http2 = [ h2 ];
-    socks = [ socksio ];
+    http2 = [
+      h2
+    ];
+    socks = [
+      socksio
+    ];
   };
 
   checkInputs = [
     pproxy
     pytest-asyncio
-    pytestCheckHook
-    pytest-cov
     pytest-httpbin
-    trio
-    trustme
-    uvicorn
+    pytest-trio
+    pytestCheckHook
   ] ++ passthru.optional-dependencies.http2
     ++ passthru.optional-dependencies.socks;
 
-  pythonImportsCheck = [ "httpcore" ];
+  pythonImportsCheck = [
+    "httpcore"
+  ];
+
+  pytestFlagsArray = [
+    "--asyncio-mode=strict"
+  ];
 
   meta = with lib; {
     description = "A minimal low-level HTTP client";
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 0070d5d04ef..ab5a6820529 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -1,67 +1,74 @@
 { lib
-, async_generator
+, brotli
+, brotlicffi
 , buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , certifi
-, charset-normalizer
-, httpcore
-, rfc3986
-, sniffio
+, chardet
+, click
+, fetchFromGitHub
 , h2
-, socksio
+, httpcore
 , isPyPy
-, brotli
-, brotlicffi
-, click
-, rich
 , pygments
 , python
+, pythonOlder
+, rfc3986
+, rich
+, sniffio
+, socksio
 , pytestCheckHook
 , pytest-asyncio
 , pytest-trio
-, typing-extensions
 , trustme
 , uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.22.0";
+  version = "0.23.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hQmQodGpVG23IZSsWV7rB1iB6QAudDao/8YshIgpmas=";
+    hash = "sha256-s11Yeizm3y3w5D6ACQ2wp/KJ0+1ALY/R71IlTP2pMC4=";
   };
 
   propagatedBuildInputs = [
     certifi
-    charset-normalizer
     httpcore
     rfc3986
     sniffio
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    async_generator
   ];
 
   passthru.optional-dependencies = {
-    http2 = [ h2 ];
-    socks = [ socksio ];
-    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
-    cli = [ click rich pygments ];
+    http2 = [
+      h2
+    ];
+    socks = [
+      socksio
+    ];
+    brotli = if isPyPy then [
+      brotlicffi
+    ] else [
+      brotli
+    ];
+    cli = [
+      click
+      rich
+      pygments
+    ];
   };
 
   checkInputs = [
+    chardet
     pytestCheckHook
     pytest-asyncio
     pytest-trio
     trustme
-    typing-extensions
     uvicorn
   ] ++ passthru.optional-dependencies.http2
     ++ passthru.optional-dependencies.brotli
@@ -88,9 +95,6 @@ buildPythonPackage rec {
     # httpcore.ConnectError: [Errno -2] Name or service not known
     "test_async_proxy_close"
     "test_sync_proxy_close"
-    # sensitive to charset_normalizer output
-    "iso-8859-1"
-    "test_response_no_charset_with_iso_8859_1_content"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix
index 7837deea6db..ed57ad767b0 100644
--- a/pkgs/development/python-modules/hyperion-py/default.nix
+++ b/pkgs/development/python-modules/hyperion-py/default.nix
@@ -2,6 +2,7 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
 , pythonAtLeast
@@ -13,7 +14,7 @@
 buildPythonPackage rec {
   pname = "hyperion-py";
   version = "0.7.5";
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
+  disabled = pythonOlder "3.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -23,6 +24,14 @@ buildPythonPackage rec {
     sha256 = "sha256-arcnpCQsRuiWCrAz/t4TCjTe8DRDtRuzYp8k7nnjGDk=";
   };
 
+  patches = [
+    (fetchpatch {
+      # python3.10 compat: Drop loop kwarg in asyncio.sleep call
+      url = "https://github.com/dermotduffy/hyperion-py/commit/f02af52fcce17888984c99bfc03935e372011394.patch";
+      hash = "sha256-4nfsQVxd77VV9INwNxTyFRDlAjwdTYqfSGuF487hFCs=";
+    })
+  ];
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 8eaa808563e..c92b655fabd 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -8,27 +8,21 @@
 , pytestCheckHook
 , pytest-xdist
 , sortedcontainers
-, tzdata
 , pythonOlder
 }:
-buildPythonPackage rec {
-  # https://hypothesis.readthedocs.org/en/latest/packaging.html
-
-  # Hypothesis has optional dependencies on the following libraries
-  # pytz fake_factory django numpy pytest
-  # If you need these, you can just add them to your environment.
 
+buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.40.0";
+  version = "6.46.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "HypothesisWorks";
-    repo = "hypothesis-python";
+    repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-6BC3CTotkMhguueH4NJM8VjbrYhofHqtZEUytcllMwQ=";
+    hash = "sha256-eQ7Ns0k1hOVw8/xiINMei6GbQqDHXrBl+1v8YQeFO9Q=";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
@@ -42,8 +36,6 @@ buildPythonPackage rec {
     pexpect
     pytest-xdist
     pytestCheckHook
-  ] ++ lib.optional (pythonAtLeast "3.9") [
-    tzdata
   ];
 
   inherit doCheck;
diff --git a/pkgs/development/python-modules/ifaddr/default.nix b/pkgs/development/python-modules/ifaddr/default.nix
index 35bafd67fa9..82b00d55095 100644
--- a/pkgs/development/python-modules/ifaddr/default.nix
+++ b/pkgs/development/python-modules/ifaddr/default.nix
@@ -1,8 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, ipaddress
-, python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -14,11 +13,11 @@ buildPythonPackage rec {
     sha256 = "1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94";
   };
 
-  propagatedBuildInputs = [ ipaddress ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-   ${python.interpreter} -m unittest discover
-  '';
+  pythonImportsCheck = [ "ifaddr" ];
 
   meta = with lib; {
     homepage = "https://github.com/pydron/ifaddr";
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 9c449c69b77..7c3fd87b4af 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.16.1";
+  version = "2.19.2";
   disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "sha256-fxI8sjp3rFq+jtTnrWpggxqC3ixdEjRj3PHUJ4xHedI=";
+    sha256 = "sha256-RuHnQSiDfSoevIdHa39zl4tpoSj6I4vJibYlqYGb2bM=";
     inherit pname version;
   };
 
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 83d6336fe59..34a48ed2a1f 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -9,17 +9,19 @@
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.17";
+  version = "0.18";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "MagicStack";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4VuB8eTWHD4hEDj11u/talfv38h2BhogSZmEVyUtnko=";
+    hash = "sha256-lXCoPTcpTOv9K0xCVjbrP3qlzP9tfk/e3Rk3oOmbS/Y=";
   };
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     typing-extensions
   ];
 
@@ -33,10 +35,12 @@ buildPythonPackage rec {
     "testMypyImmu"
   ];
 
-  pythonImportsCheck = [ "immutables" ];
+  pythonImportsCheck = [
+    "immutables"
+  ];
 
   meta = with lib; {
-    description = "An immutable mapping type for Python";
+    description = "An immutable mapping type";
     homepage = "https://github.com/MagicStack/immutables";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index 0228ae6bcf2..6f895b45ed0 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -6,7 +6,6 @@
 , entrypoints
 , fetchFromGitHub
 , fsspec
-, holoviews
 , hvplot
 , intake-parquet
 , jinja2
@@ -27,7 +26,8 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.6.4";
+  version = "0.6.5";
+  format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
@@ -35,57 +35,75 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "194cdd6lx92zcpkn3wgm490kxvw0c58ziix8hcihsr5ayfr1wdsl";
+    hash = "sha256-ABMXWUVptpOSPB1jQ57iXk/UG92puNCICzXo3ZMG2Pk=";
   };
 
   propagatedBuildInputs = [
     appdirs
-    bokeh
     dask
     entrypoints
     fsspec
-    holoviews
-    hvplot
-    jinja2
     msgpack
-    msgpack-numpy
-    numpy
+    jinja2
     pandas
-    panel
-    pyarrow
-    python-snappy
     pyyaml
-    requests
-    tornado
   ];
 
   checkInputs = [
     intake-parquet
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.server;
+
+  passthru.optional-dependencies = {
+    server = [
+      msgpack
+      python-snappy
+      tornado
+    ];
+    dataframe = [
+      msgpack-numpy
+      pyarrow
+    ];
+    plot = [
+      hvplot
+      bokeh
+      panel
+    ];
+    remote = [
+      requests
+    ];
+  };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'" ""
   '';
 
-  # test_discover requires driver_with_entrypoints-0.1.dist-info, which is not included in tarball
-  # test_filtered_compressed_cache requires calvert_uk_filter.tar.gz, which is not included in tarball
   preCheck = ''
-    HOME=$TMPDIR
-    PATH=$out/bin:$PATH
+    export HOME=$(mktemp -d);
+    export PATH="$PATH:$out/bin";
   '';
 
   disabledTests = [
-    # Disable tests which touch network and are broken
+    # Disable tests which touch network
+    "http"
+    "test_dir"
     "test_discover"
     "test_filtered_compressed_cache"
+    "test_flatten_flag"
     "test_get_dir"
-    "test_remote_cat"
-    "http"
+    "test_pagination"
+    "test_read_part_compressed"
+    "test_read_partition"
     "test_read_pattern"
     "test_remote_arr"
-    "test_flatten_flag"
+    "test_remote_cat"
+    # ValueError
+    "test_mlist_parameter"
+    # ImportError
+    "test_dataframe"
+    "test_ndarray"
+    "test_python"
     # Timing-based, flaky on darwin and possibly others
     "TestServerV1Source.test_idle_timer"
   ] ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
diff --git a/pkgs/development/python-modules/ipaddress/default.nix b/pkgs/development/python-modules/ipaddress/default.nix
deleted file mode 100644
index 06211470daa..00000000000
--- a/pkgs/development/python-modules/ipaddress/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, python
-}:
-
-if (pythonAtLeast "3.3") then null else buildPythonPackage rec {
-  pname = "ipaddress";
-  version = "1.0.23";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2";
-  };
-
-  checkPhase = ''
-    ${python.interpreter} test_ipaddress.py
-  '';
-
-  meta = with lib; {
-    description = "Port of the 3.3+ ipaddress module to 2.6, 2.7, and 3.2";
-    homepage = "https://github.com/phihag/ipaddress";
-    license = licenses.psfl;
-  };
-
-}
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index f77412e4cc1..03060f4e866 100644
--- a/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/pkgs/development/python-modules/jsonpatch/default.nix
@@ -1,25 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , jsonpointer
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "jsonpatch";
   version = "1.32";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "stefankoegl";
+    repo = "python-json-patch";
+    rev = "v${version}";
+    hash = "sha256-JMGBgYjnjHQ5JpzDwJcR2nVZfzmQ8ZZtcB0GsJ9Q4Jc=";
   };
 
-  # test files are missing
-  doCheck = false;
-  propagatedBuildInputs = [ jsonpointer ];
+  propagatedBuildInputs = [
+    jsonpointer
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "jsonpatch"
+  ];
+
+  pytestFlagsArray = [
+    "tests.py"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Library to apply JSON Patches according to RFC 6902";
     homepage = "https://github.com/stefankoegl/python-json-patch";
-    license = lib.licenses.bsd2; # "Modified BSD license, says pypi"
+    license = licenses.bsd2; # "Modified BSD license, says pypi"
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index 202e047dd8e..e90ea39132f 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -2,35 +2,35 @@
 , attrs
 , buildPythonPackage
 , fetchPypi
+, hatch-vcs
+, hatchling
 , importlib-metadata
 , importlib-resources
 , pyrsistent
 , pythonOlder
-, setuptools-scm
 , twisted
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "jsonschema";
-  version = "4.5.1";
+  version = "4.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fG2IJhk0DDNHob9zFeFH5tPa5DkDOuY4PWrLkIwQHfw=";
+    sha256 = "sha256-nWOXukpsC/AwBzYFf2SePhLsvAfT6BoNrLct5OmAGVc=";
   };
 
   postPatch = ''
     patchShebangs json/bin/jsonschema_suite
   '';
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = [
-    setuptools-scm
+    hatch-vcs
+    hatchling
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix
index ccd12e4aaae..7d6c185d1cc 100644
--- a/pkgs/development/python-modules/libcst/default.nix
+++ b/pkgs/development/python-modules/libcst/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , buildPythonPackage
-, dataclasses
 , fetchFromGitHub
 , hypothesis
 , libiconv
@@ -18,23 +17,23 @@
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.4.1";
+  version = "0.4.3";
   format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-soAlt1KBpCn5JxM1b2LZ3vOpBn9HPGdbm+BBYbyEkfE=";
+    sha256 = "sha256-Lm62rVL5f+fu4KzOQMroM0Eu27l5v2dkGtRiIVPFNhg=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "source/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256:1rz1c0dv3f1h2m5hwdisl3rbqnmifbva4f0c4vygk7rh1q27l515";
+    hash = "sha256-i5BYYiILadKEPIJOaWdG1lZNSHfNQnwmc5j0D1jg/kc=";
   };
 
   cargoRoot = "native";
@@ -56,15 +55,13 @@ buildPythonPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   propagatedBuildInputs = [
-    hypothesis
     typing-extensions
     typing-inspect
     pyyaml
-  ] ++ lib.optional (pythonOlder "3.7") [
-    dataclasses
   ];
 
   checkInputs = [
+    hypothesis
     pytestCheckHook
   ];
 
@@ -88,6 +85,6 @@ buildPythonPackage rec {
     description = "Concrete Syntax Tree (CST) parser and serializer library for Python";
     homepage = "https://github.com/Instagram/libcst";
     license = with licenses; [ mit asl20 psfl ];
-    maintainers = with maintainers; [ ruuda SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index a79bd445b6b..c2898608583 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "2.6.1";
+  version = "2.6.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/limits/_version.py"
     '';
-    hash = "sha256-ja+YbRHCcZ5tFnoofdR44jbkkdDroVUdKeDOt6yE0LI=";
+    hash = "sha256-YAuq8QycQ55emU2S0rQHxdHCD+jSRmzUKeYFdrV9NzM=";
   };
 
   propagatedBuildInputs = [
@@ -56,9 +56,6 @@ buildPythonPackage rec {
     substituteInPlace pytest.ini \
       --replace "--cov=limits" "" \
       --replace "-K" ""
-    # redis-py-cluster doesn't support redis > 4
-    substituteInPlace tests/conftest.py \
-      --replace "import rediscluster" ""
 
     # Recreate _version.py, deleted at fetch time due to non-reproducibility.
     echo 'def get_versions(): return {"version": "${version}"}' > limits/_version.py
diff --git a/pkgs/development/python-modules/locket/default.nix b/pkgs/development/python-modules/locket/default.nix
index fd75a965c52..e416d8dd828 100644
--- a/pkgs/development/python-modules/locket/default.nix
+++ b/pkgs/development/python-modules/locket/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "locket";
-  version = "0.2.1";
+  version = "1.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e1faba403619fe201552f083f1ecbf23f550941bc51985ac6ed4d02d25056dd";
+    hash = "sha256-XA1MBSqLu/dQ4Fao5lzNMJCG9PDxii6sMGqN+kESpjI=";
   };
 
-  buildInputs = [ pytest ];
-
   # weird test requirements (spur.local>=0.3.7,<0.4)
   doCheck = false;
 
+  pythonImportsCheck = [
+    "locket"
+  ];
+
   meta = with lib; {
-    description = "Locket implements a lock that can be used by multiple processes provided they use the same path.";
+    description = "Library which provides a lock that can be used by multiple processes";
     homepage = "https://github.com/mwilliamson/locket.py";
     license = licenses.bsd2;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 3ef230eb8e8..c9d4a7cf961 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "lxml-${version}";
-    sha256 = "sha256-ppyLn8B0YFQivRCOE8TjKGdDDQHbb7UdTUkevznoVC8=";
+    sha256 = "sha256-3bPyfsiJGDNB0MPw4OhATRnsM3I8ThZwvPWI+easgNo=";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
diff --git a/pkgs/development/python-modules/m2r/default.nix b/pkgs/development/python-modules/m2r/default.nix
index fd148382617..526f2b12867 100644
--- a/pkgs/development/python-modules/m2r/default.nix
+++ b/pkgs/development/python-modules/m2r/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , fetchPypi
 , docutils
 , mistune
@@ -15,6 +16,14 @@ buildPythonPackage rec {
     sha256 = "bf90bad66cda1164b17e5ba4a037806d2443f2a4d5ddc9f6a5554a0322aaed99";
   };
 
+  patches = [
+    # fix tests in python 3.10
+    (fetchpatch {
+      url = "https://github.com/miyakogi/m2r/commit/58ee9cabdadf5e3deb13037f3052238f0f2bffcd.patch";
+      sha256 = "sha256-CN3PWmnk7xsn1wngRHuEWmDTP3HtVNxkFv0xzD2Zjlo=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace tests/test_cli.py \
       --replace "optional" "positional"
diff --git a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
new file mode 100644
index 00000000000..9ea39e27a16
--- /dev/null
+++ b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, markdown
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "mdx_truly_sane_lists";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "radude";
+    repo = "mdx_truly_sane_lists";
+    rev = version;
+    sha256 = "1h8403ch016cwdy5zklzp7c6xrdyyhl4z07h97qzbafrbq07jyss";
+  };
+
+  propagatedBuildInputs = [ markdown ];
+
+  pythonImportsCheck = [ "mdx_truly_sane_lists" ];
+
+  checkPhase = ''
+    ${python.interpreter} mdx_truly_sane_lists/tests.py
+  '';
+
+  meta = with lib; {
+    description = "Extension for Python-Markdown that makes lists truly sane.";
+    longDescription = ''
+      Features custom indents for nested lists and fix for messy linebreaks and
+      paragraphs between lists.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/development/python-modules/mkdocs-exclude/default.nix b/pkgs/development/python-modules/mkdocs-exclude/default.nix
new file mode 100644
index 00000000000..e959a15e470
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-exclude/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, callPackage
+, buildPythonPackage
+, fetchFromGitHub
+, mkdocs
+}:
+
+buildPythonPackage rec {
+  pname = "mkdocs-exclude";
+  version = "1.0.2";
+
+  # Repository has only 3 commits and no tags. Each of these commits has
+  # version of 1.0.0, 1.0.1 and 1.0.2 in setup.py, though.
+  src = fetchFromGitHub {
+    owner = "apenwarr";
+    repo = "mkdocs-exclude";
+    rev = "fdd67d2685ff706de126e99daeaaaf3f6f7cf3ae";
+    sha256 = "1phhl79xf4xq8w2sb2w5zm4bahcr33gsbxkz7dl1dws4qhcbxrfd";
+  };
+
+  propagatedBuildInputs = [ mkdocs ];
+
+  # Attempt to import "mkdocs_exclude" module in stand-alone mode fails:
+  #
+  #    module 'mkdocs.config' has no attribute 'config_options'
+  #
+  # It works fine when actually used to build documentation of "pydantic",
+  # though. This package has no tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A mkdocs plugin to exclude files from input using globs or regexes.";
+    homepage = "https://github.com/apenwarr/mkdocs-exclude";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 7f3251a6cc2..fc0e613b249 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -16,6 +16,7 @@
 , idna
 , jinja2
 , jsondiff
+, openapi-spec-validator
 , python-dateutil
 , python-jose
 , pytz
@@ -35,14 +36,14 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "3.1.3";
+  version = "3.1.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+kgVlfVhHZ/r2vCg0Skwe1433mh2w30DXO7+Rs59isA=";
+    sha256 = "sha256-GwxHL0t0AXdakuY/vPomESoA4Ie59u3aEiAqOcYsYYE=";
   };
 
   propagatedBuildInputs = [
@@ -58,6 +59,7 @@ buildPythonPackage rec {
     idna
     jinja2
     jsondiff
+    openapi-spec-validator
     python-dateutil
     python-jose
     pytz
@@ -95,6 +97,10 @@ buildPythonPackage rec {
     "--deselect=tests/test_iotdata/test_iotdata.py::test_publish"
     "--deselect=tests/test_s3/test_server.py::test_s3_server_bucket_versioning"
 
+    # Disalbe test that require docker daemon
+    "--deselect=tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda"
+    "--deselect=tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda"
+
     # json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
     "--deselect=tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function"
 
diff --git a/pkgs/development/python-modules/msgpack/default.nix b/pkgs/development/python-modules/msgpack/default.nix
index 805d347389c..aa413190d4d 100644
--- a/pkgs/development/python-modules/msgpack/default.nix
+++ b/pkgs/development/python-modules/msgpack/default.nix
@@ -2,27 +2,37 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "msgpack";
-  version = "1.0.3";
+  version = "1.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e";
+    hash = "sha256-9dhpwY8DAgLrQS8Iso0q/upVPWYTruieIA16yn7wH18=";
   };
 
   nativeBuildInputs = [
     setuptools
   ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "msgpack"
+  ];
 
   meta = with lib;  {
+    description = "MessagePack serializer implementation";
     homepage = "https://github.com/msgpack/msgpack-python";
-    description = "MessagePack serializer implementation for Python";
     changelog = "https://github.com/msgpack/msgpack-python/blob/master/ChangeLog.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/development/python-modules/netifaces/default.nix b/pkgs/development/python-modules/netifaces/default.nix
index 66feb7be026..6d34bc3df4a 100644
--- a/pkgs/development/python-modules/netifaces/default.nix
+++ b/pkgs/development/python-modules/netifaces/default.nix
@@ -1,25 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   version = "0.11.0";
   pname = "netifaces";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32";
+    hash = "sha256-BDp5FG6ykH7fQ5iZ8mKz3+QXF9NBJCmO0oETmouTyjI=";
   };
 
-  doCheck = false; # no tests implemented
+  # No tests implemented
+  doCheck = false;
 
-  pythonImportsCheck = [ "netifaces" ];
+  pythonImportsCheck = [
+    "netifaces"
+  ];
 
   meta = with lib; {
-    homepage = "https://alastairs-place.net/projects/netifaces/";
     description = "Portable access to network interfaces from Python";
+    homepage = "https://github.com/al45tair/netifaces";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/networkx/default.nix b/pkgs/development/python-modules/networkx/default.nix
index 140eb9bb24c..3fb08348c7f 100644
--- a/pkgs/development/python-modules/networkx/default.nix
+++ b/pkgs/development/python-modules/networkx/default.nix
@@ -2,26 +2,25 @@
 , buildPythonPackage
 , fetchPypi
 , nose
-, pytest
+, pytestCheckHook
 , decorator
 , setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "networkx";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.7.1";
+  version = "2.8.2";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0RlLp1Pl7tB83s0dI8XNejx3IJm9jb0v6jZniM9N57o=";
+    sha256 = "sha256-rpnJsNNeW0pizxz+oB5bNjPY0C9KDq1paFtufeW4Xqs=";
   };
 
   propagatedBuildInputs = [ decorator setuptools ];
-  checkInputs = [ nose pytest];
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ nose pytestCheckHook ];
 
   meta = {
     homepage = "https://networkx.github.io/";
diff --git a/pkgs/development/python-modules/nose_progressive/default.nix b/pkgs/development/python-modules/nose_progressive/default.nix
index a483b2b7af8..fb9a8e61bda 100644
--- a/pkgs/development/python-modules/nose_progressive/default.nix
+++ b/pkgs/development/python-modules/nose_progressive/default.nix
@@ -24,11 +24,11 @@ buildPythonPackage rec {
   doCheck = !isPy3k;
 
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://github.com/erikrose/nose-progressive";
     description = "A testrunner with a progress bar and smarter tracebacks";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
+    broken = true; # relies on 2to3 conversion, which was removed from setuptools>=58.0
   };
 
 }
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 2fbe1a7a694..a163ef6449a 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -44,7 +44,7 @@ in buildPythonPackage rec {
   # Attention! v1.22.0 breaks scipy and by extension scikit-learn, so
   # build both to verify they don't break.
   # https://github.com/scipy/scipy/issues/15414
-  version = "1.21.5";
+  version = "1.21.6";
 
   format = "pyproject.toml";
   disabled = pythonOlder "3.7";
@@ -52,7 +52,7 @@ in buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-alkovGJBJk3OXtUJ5m8zZ2/Jf0ZOepGe3GcvtVMiIe4=";
+    sha256 = "sha256-7LVSUROXBmaf3sL/BzyY746ahEc+UecWIRtBqg8Y5lY=";
   };
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
diff --git a/pkgs/development/python-modules/ordereddict/default.nix b/pkgs/development/python-modules/ordereddict/default.nix
deleted file mode 100644
index 6ef00640585..00000000000
--- a/pkgs/development/python-modules/ordereddict/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
-
-buildPythonPackage rec {
-  pname = "ordereddict";
-  version = "1.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "07qvy11nvgxpzarrni3wrww3vpc9yafgi2bch4j2vvvc42nb8d8w";
-  };
-
-  meta = with lib; {
-    description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
-  };
-
-}
diff --git a/pkgs/development/python-modules/osmnx/default.nix b/pkgs/development/python-modules/osmnx/default.nix
index 75a2ce44630..4442d2ddee0 100755
--- a/pkgs/development/python-modules/osmnx/default.nix
+++ b/pkgs/development/python-modules/osmnx/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "osmnx";
-  version = "1.1.2";
-  disabled = pythonOlder "3.6";
+  version = "1.2.0";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner  = "gboeing";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-qrTAXZFm88elMrVjvGwfdNwTA/PRdCOHFqpcgoKVGNk=";
+    sha256 = "sha256-HfgMmPEiKstMXV0rtul8QLxB1FY32Ws7IEonBB+qZOc=";
   };
 
   propagatedBuildInputs = [ geopandas matplotlib networkx numpy pandas requests Rtree shapely folium scikit-learn scipy gdal rasterio ];
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 421d53b5a88..9a004694003 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -2,24 +2,25 @@
 , bcrypt
 , buildPythonPackage
 , cryptography
+, fetchpatch
 , fetchPypi
+, gssapi
 , invoke
 , mock
 , pyasn1
 , pynacl
 , pytest-relaxed
 , pytestCheckHook
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "paramiko";
-  version = "2.10.4";
+  version = "2.11.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PS5lC2gSzm0WCr/3AdbvRDTsl5NLE+lc8a09pw/7XFg=";
+    sha256 = "sha256-AD5r7nwDTCH7sFG/g9wKnuQQYgTdPFMFTHFFLMTsOTg=";
   };
 
   patches = [
@@ -32,11 +33,9 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    bcrypt
     cryptography
     pyasn1
-    pynacl
-  ];
+  ] ++ passthru.optional-dependencies.ed25519; # remove on 3.0 update
 
   checkInputs = [
     invoke
@@ -62,6 +61,12 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
+  passthru.optional-dependencies = {
+    gssapi = [ pyasn1 gssapi ];
+    ed25519 = [ pynacl bcrypt ];
+    invoke = [ invoke ];
+  };
+
   meta = with lib; {
     homepage = "https://github.com/paramiko/paramiko/";
     description = "Native Python SSHv2 protocol library";
diff --git a/pkgs/development/python-modules/pbr/default.nix b/pkgs/development/python-modules/pbr/default.nix
index 7a03226b4dd..7fb0574f75a 100644
--- a/pkgs/development/python-modules/pbr/default.nix
+++ b/pkgs/development/python-modules/pbr/default.nix
@@ -7,13 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pbr";
-  version = "5.8.1";
+  version = "5.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZrxaNJEvQIuzklvyEjHLb1kgYme39j81A++GXBopLiU=";
+    sha256 = "sha256-6Nyi9LQ1YO3vWIE5afUqVs7wIxRsu4kxYm24DmwcQwg=";
   };
 
+  # importlib-metadata could be added here if it wouldn't cause an infinite recursion
   propagatedBuildInputs = [ setuptools ];
 
   # check in passthru.tests.pytest to escape infinite recursion with fixtures
diff --git a/pkgs/development/python-modules/pefile/default.nix b/pkgs/development/python-modules/pefile/default.nix
index 1a793644fb2..b1707670e76 100644
--- a/pkgs/development/python-modules/pefile/default.nix
+++ b/pkgs/development/python-modules/pefile/default.nix
@@ -8,14 +8,16 @@
 
 buildPythonPackage rec {
   pname = "pefile";
-  version = "2021.9.3";
+  version = "2022.5.30";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "erocarrera";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sr17rmqpr874m8rpkp8xdz8kjshhimbfgq13qy4lscaiznmlf0d";
+    hash = "sha256-Cv20hJsErHFSuS5Q1kqLNp4DAsPXv/eFhaU9oYECSeI=";
   };
 
   nativeBuildInputs = [
@@ -29,12 +31,14 @@ buildPythonPackage rec {
   # Test data encrypted
   doCheck = false;
 
-  pythonImportsCheck = [ "pefile" ];
+  pythonImportsCheck = [
+    "pefile"
+  ];
 
   meta = with lib; {
     description = "Multi-platform Python module to parse and work with Portable Executable (aka PE) files";
     homepage = "https://github.com/erocarrera/pefile";
     license = licenses.mit;
-    maintainers = [ maintainers.pamplemousse ];
+    maintainers = with maintainers; [ pamplemousse ];
   };
 }
diff --git a/pkgs/development/python-modules/pgpy/default.nix b/pkgs/development/python-modules/pgpy/default.nix
index 3c2e2c22a88..a53711a4de6 100644
--- a/pkgs/development/python-modules/pgpy/default.nix
+++ b/pkgs/development/python-modules/pgpy/default.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # assertions contains extra: IDEA has been deprecated
+    "test_encrypt_bad_cipher"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/SecurityInnovation/PGPy";
     description = "Pretty Good Privacy for Python 2 and 3";
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index 47ed191c6d9..e482cd75e1a 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -12,14 +12,14 @@
 
 import ./generic.nix (rec {
   pname = "pillow";
-  version = "9.1.0";
+  version = "9.1.1";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "Pillow";
     inherit version;
-    sha256 = "f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97";
+    sha256 = "sha256-dQJTmTm1PXVl89Edh8eOfskA08cpRdTuDi8lDVmDCaA=";
   };
 
   passthru.tests = {
diff --git a/pkgs/development/python-modules/psutil/default.nix b/pkgs/development/python-modules/psutil/default.nix
index 581e83ddf1a..197da3c76ce 100644
--- a/pkgs/development/python-modules/psutil/default.nix
+++ b/pkgs/development/python-modules/psutil/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv, buildPythonPackage, fetchPypi, isPy27, python
-, darwin
+, IOKit
 , pytestCheckHook
 , mock
-, ipaddress
 , unittest2
 }:
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.9.0";
+  version = "5.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25";
+    sha256 = "sha256-V/GBm12elc37DIgailt9VC7Qt8Ui1XVwaoC+3ISMiVQ=";
   };
 
   # We have many test failures on various parts of the package:
@@ -24,7 +23,7 @@ buildPythonPackage rec {
   #    https://github.com/giampaolo/psutil/issues/1912
   doCheck = false;
   checkInputs = [ pytestCheckHook ]
-  ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
+  ++ lib.optionals isPy27 [ mock unittest2 ];
   # In addition to the issues listed above there are some that occure due to
   # our sandboxing which we can work around by disabling some tests:
   # - cpu_times was flaky on darwin
@@ -42,7 +41,7 @@ buildPythonPackage rec {
     "cpu_freq"
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ darwin.IOKit ];
+  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
   pythonImportsCheck = [ "psutil" ];
 
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 56cd8fee7f9..8ebba4b0178 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -34,14 +34,17 @@ buildPythonPackage rec {
     openssl
   ];
 
+  sphinxRoot = "doc/src";
+
   # requires setting up a postgresql database
   doCheck = false;
 
-  sphinxRoot = "doc/src";
+  pythonImportsCheck = [ "psycopg2" ];
 
   meta = with lib; {
     description = "PostgreSQL database adapter for the Python programming language";
     homepage = "https://www.psycopg.org";
     license = with licenses; [ lgpl3 zpl20 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pure-eval/default.nix b/pkgs/development/python-modules/pure-eval/default.nix
index 866b2bdcadf..ba84c1db5fa 100644
--- a/pkgs/development/python-modules/pure-eval/default.nix
+++ b/pkgs/development/python-modules/pure-eval/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, isPy3k
+, pythonOlder
 , fetchFromGitHub
 , setuptools-scm
 , toml
@@ -9,15 +9,16 @@
 
 buildPythonPackage rec {
   pname = "pure_eval";
-  version = "0.2.1";
+  version = "0.2.2";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "alexmojaki";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Vucu16NFPtQ23AbBH/cQU+klxp6DMicSScbnKegLZI=";
+    hash = "sha256-9N+UcgAv30s4ctgsBrOHiix4BoXhKPgxH/GOz/NIFdU=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -34,7 +35,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pure_eval" ];
+  pythonImportsCheck = [
+    "pure_eval"
+  ];
 
   meta = with lib; {
     description = "Safely evaluate AST nodes without side effects";
diff --git a/pkgs/development/python-modules/pyannotate/default.nix b/pkgs/development/python-modules/pyannotate/default.nix
index 332a4161fe7..50edda1a7ef 100644
--- a/pkgs/development/python-modules/pyannotate/default.nix
+++ b/pkgs/development/python-modules/pyannotate/default.nix
@@ -1,34 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, mypy-extensions
+, pytestCheckHook
 , pythonOlder
 , six
-, mypy-extensions
-, typing
-, pytest
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
   pname = "pyannotate";
+  version = "1.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84";
+    hash = "sha256-BO1YBLqzgVPVmB/JLYPc9qIog0U3aFYfBX53flwFdZk=";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six mypy-extensions ]
-    ++ lib.optionals (pythonOlder "3.5") [ typing ];
+  propagatedBuildInputs = [
+    six
+    mypy-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [
+    "pyannotate_runtime"
+    "pyannotate_tools"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/dropbox/pyannotate";
     description = "Auto-generate PEP-484 annotations";
+    homepage = "https://github.com/dropbox/pyannotate";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index 85d89424c83..53dde0cd0f6 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , buildPythonPackage
 , python
-, isPy3k
+, pythonOlder
 , arrow-cpp
 , cffi
 , cloudpickle
@@ -28,14 +28,28 @@ in
 
 buildPythonPackage rec {
   pname = "pyarrow";
-  disabled = !isPy3k;
-
   inherit (_arrow-cpp) version src;
 
+  disabled = pythonOlder "3.7";
+
   sourceRoot = "apache-arrow-${version}/python";
 
-  nativeBuildInputs = [ cmake cython pkg-config setuptools-scm ];
-  propagatedBuildInputs = [ numpy six cloudpickle scipy fsspec cffi ];
+  nativeBuildInputs = [
+    cmake
+    cython
+    pkg-config
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    cloudpickle
+    fsspec
+    numpy
+    scipy
+    six
+  ];
+
   checkInputs = [
     hypothesis
     pandas
@@ -62,6 +76,7 @@ buildPythonPackage rec {
   ARROW_TEST_DATA = lib.optionalString doCheck _arrow-cpp.ARROW_TEST_DATA;
 
   doCheck = true;
+
   dontUseCmakeConfigure = true;
 
   preBuild = ''
@@ -80,6 +95,9 @@ buildPythonPackage rec {
     "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws"
     "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws_region_selection"
     "--deselect=pyarrow/tests/test_fs.py::test_s3_options"
+    # Flaky test
+    "--deselect=pyarrow/tests/test_flight.py::test_roundtrip_errors"
+    "--deselect=pyarrow/tests/test_pandas.py::test_threaded_pandas_import"
   ] ++ lib.optionals stdenv.isDarwin [
     # Requires loopback networking
     "--deselect=pyarrow/tests/test_ipc.py::test_socket_"
@@ -90,6 +108,7 @@ buildPythonPackage rec {
   ];
 
   dontUseSetuptoolsCheck = true;
+
   preCheck = ''
     shopt -s extglob
     rm -r pyarrow/!(tests)
@@ -98,7 +117,9 @@ buildPythonPackage rec {
     ulimit -n 1024
   '';
 
-  pythonImportsCheck = [ "pyarrow" ] ++ map (module: "pyarrow.${module}") ([
+  pythonImportsCheck = [
+    "pyarrow"
+  ] ++ map (module: "pyarrow.${module}") ([
     "compute"
     "csv"
     "dataset"
@@ -108,7 +129,9 @@ buildPythonPackage rec {
     "hdfs"
     "json"
     "parquet"
-  ] ++ lib.optionals (!stdenv.isDarwin) [ "plasma" ]);
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "plasma"
+  ]);
 
   meta = with lib; {
     description = "A cross-language development platform for in-memory data";
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index 7a44cf995e3..78a75817bee 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -1,16 +1,16 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , boto3
 , botocore
+, buildPythonPackage
+, fetchPypi
 , pandas
-, tenacity
 , pythonOlder
+, tenacity
 }:
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "2.5.2";
+  version = "2.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyAthena";
     inherit version;
-    sha256 = "sha256-vjoK6lEitvd5vqSEE/ael8q00O05lquKIviFK/bPlVQ=";
+    hash = "sha256-b1JdJhSe4ezKN4afZexwc/YT7OM9nIXHK7ca6nYRGnY=";
   };
 
   propagatedBuildInputs = [
@@ -38,9 +38,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
     homepage = "https://github.com/laughingman7743/PyAthena/";
     license = licenses.mit;
-    description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
     maintainers = with maintainers; [ turion ];
   };
 }
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index ea7458f13b6..d4b67f2bb21 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pybase64";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2016a3a487d3d4501d8281f61ee54c25efd65e37a4c7dce8011e0de7183c956";
+    sha256 = "sha256-vv2YOlp7ZVE1W2q+VnI/f58SxYDgLxJreIOwdb6/8lw=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index e3e4e6c3a03..ef7b571170f 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,28 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pycryptodome-test-vectors
+, callPackage
+, fetchFromGitHub
+, cffi
+, gmp
 }:
 
+let
+  test-vectors = callPackage ./vectors.nix { };
+in
 buildPythonPackage rec {
   pname = "pycryptodome";
   version = "3.14.1";
   format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-4E5Ap/jBZpGVU2o3l53YfaLDLb3HPW/jXwB3sMF8gDs=";
+  src = fetchFromGitHub {
+    owner = "Legrandin";
+    repo = "pycryptodome";
+    rev = "v${version}";
+    hash = "sha256-0GjpKNyALe2Q1R3dEjeAEn6E8hxYDic/vbN1YkVaUfs=";
   };
 
+  postPatch = ''
+    substituteInPlace lib/Crypto/Math/_IntegerGMP.py \
+      --replace 'load_lib("gmp"' 'load_lib("${gmp}/lib/libgmp.so.10"'
+  '';
+
+  checkInputs = [
+    test-vectors
+  ];
+
   pythonImportsCheck = [
     "Crypto"
   ];
 
   meta = with lib; {
-    description = "Python Cryptography Toolkit";
-    homepage = "https://www.pycryptodome.org/";
+    description = "Self-contained cryptographic library";
+    homepage = "https://github.com/Legrandin/pycryptodome";
     license = with licenses; [ bsd2 /* and */ asl20 ];
     maintainers = with maintainers; [ fab ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix b/pkgs/development/python-modules/pycryptodome/vectors.nix
index f6a2b715ad9..f6a2b715ad9 100644
--- a/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/vectors.nix
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 934c021ed90..9d476ea4728 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,27 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pycryptodome-test-vectors
-}:
+{ pycryptodome }:
 
-buildPythonPackage rec {
+(pycryptodome.overrideAttrs (oldAttrs: rec {
   pname = "pycryptodomex";
-  version = "3.14.1";
-  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-LOdu0Agf1qyMdO3HW50U7KIGQXOveYQ8JPpiVzJjwfI=";
-  };
+  postPatch = ''
+    touch .separate_namespace
+  '';
 
   pythonImportsCheck = [
     "Cryptodome"
   ];
-
-  meta = with lib; {
-    description = "A self-contained cryptographic library for Python";
-    homepage = "https://www.pycryptodome.org";
-    license = with licenses; [ bsd2 /* and */ asl20 ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
+}))
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index aac95982cea..a886b5ba78c 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -9,11 +9,23 @@
 , python-dotenv
 , pythonOlder
 , typing-extensions
+# dependencies for building documentation.
+, ansi2html
+, markdown-include
+, mkdocs
+, mkdocs-exclude
+, mkdocs-material
+, mdx-truly-sane-lists
+, sqlalchemy
+, ujson
+, orjson
+, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
   version = "1.9.0";
+  outputs = [ "out" "doc" ];
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
@@ -23,8 +35,24 @@ buildPythonPackage rec {
     sha256 = "sha256-C4WP8tiMRFmkDkQRrvP3yOSM2zN8pHJmX9cdANIckpM=";
   };
 
+  postPatch = ''
+    sed -i '/flake8/ d' Makefile
+  '';
+
   nativeBuildInputs = [
     cython
+
+    # dependencies for building documentation
+    ansi2html
+    markdown-include
+    mdx-truly-sane-lists
+    mkdocs
+    mkdocs-exclude
+    mkdocs-material
+    sqlalchemy
+    ujson
+    orjson
+    hypothesis
   ];
 
   propagatedBuildInputs = [
@@ -43,6 +71,18 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
+  # Must include current directory into PYTHONPATH, since documentation
+  # building process expects "import pydantic" to work.
+  preBuild = ''
+    PYTHONPATH=$PWD:$PYTHONPATH make docs
+  '';
+
+  # Layout documentation in same way as "sphinxHook" does.
+  postInstall = ''
+    mkdir -p $out/share/doc/$name
+    mv ./site $out/share/doc/$name/html
+  '';
+
   enableParallelBuilding = true;
 
   pythonImportsCheck = [ "pydantic" ];
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
index ef9a7f1368e..cec999bf999 100644
--- a/pkgs/development/python-modules/pyelftools/default.nix
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -1,19 +1,23 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , python
-, stdenv
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyelftools";
-  version = "0.27";
+  version = "0.28";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "eliben";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09igdym2qj2fvfcazbz25qybmgz7ccrn25xn3havfkdkka0z0i3p";
+    hash = "sha256-+T5C0ah2oj5E8fWaQbuzYRVgD5bSiUbaArrlxNLojvw=";
   };
 
   doCheck = stdenv.hostPlatform.system == "x86_64-linux";
@@ -23,7 +27,9 @@ buildPythonPackage rec {
     ${python.interpreter} test/all_tests.py
   '';
 
-  pythonImportsCheck = [ "elftools" ];
+  pythonImportsCheck = [
+    "elftools"
+  ];
 
   meta = with lib; {
     description = "Python library for analyzing ELF files and DWARF debugging information";
diff --git a/pkgs/development/python-modules/pygal/default.nix b/pkgs/development/python-modules/pygal/default.nix
index ae7277202bb..ae5274944af 100644
--- a/pkgs/development/python-modules/pygal/default.nix
+++ b/pkgs/development/python-modules/pygal/default.nix
@@ -1,59 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
-, isPyPy
-, flask
-, pyquery
-, pytest
-, pytest-runner
-, cairosvg
-, tinycss
-, cssselect
 , lxml
+, cairosvg
+, pyquery
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pygal";
   version = "3.0.0";
 
-  doCheck = !isPyPy; # one check fails with pypy
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-KSP5XS5RWTCqWplyGdzO+/PZK36vX8HJ/ruVsJk1/bI=";
   };
 
-  buildInputs = [
-    flask
-    pyquery
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace pytest-runner ""
+  '';
 
-    # Should be a check input, but upstream lists it under "setup_requires".
-    # https://github.com/Kozea/pygal/issues/430
-    pytest-runner
-  ];
+  passthru.optional-dependencies = {
+    lxml = [ lxml ];
+    png = [ cairosvg ];
+  };
 
   checkInputs = [
-    pytest
-  ];
+    pyquery
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.png;
 
   preCheck = ''
     # necessary on darwin to pass the testsuite
     export LANG=en_US.UTF-8
   '';
 
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "[pytest]" "[tool:pytest]"
-  '';
-
-  propagatedBuildInputs = [ cairosvg tinycss cssselect ]
-    ++ lib.optionals (!isPyPy) [ lxml ];
-
   meta = with lib; {
     description = "Sexy and simple python charting";
     homepage = "http://www.pygal.org";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ sjourdois ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyjwt/default.nix b/pkgs/development/python-modules/pyjwt/default.nix
index 8212d097aa8..500f46b0240 100644
--- a/pkgs/development/python-modules/pyjwt/default.nix
+++ b/pkgs/development/python-modules/pyjwt/default.nix
@@ -2,30 +2,26 @@
 , buildPythonPackage
 , fetchPypi
 , cryptography
-, ecdsa
-, pytest-cov
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyjwt";
-  version = "2.3.0";
+  version = "2.4.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "PyJWT";
     inherit version;
-    sha256 = "sha256-uIi01W8G9tzXdyEMM05pxze+dHVdPl6e4/5n3Big7kE=";
+    sha256 = "sha256-1CkIIIxpmzuXPL6wGpabpqlsgh7vscW/5MOQwB1nq7o=";
   };
 
   propagatedBuildInputs = [
     cryptography
-    ecdsa
   ];
 
   checkInputs = [
-    pytest-cov
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/pylink-square/default.nix b/pkgs/development/python-modules/pylink-square/default.nix
index 287e8c338a8..7da521ef48f 100644
--- a/pkgs/development/python-modules/pylink-square/default.nix
+++ b/pkgs/development/python-modules/pylink-square/default.nix
@@ -6,44 +6,35 @@
 , psutil
 , six
 , future
+, pytestCheckHook
 }:
 
-let
-  mock' = mock.overridePythonAttrs (old: rec {
-    version = "2.0.0";
-    src = fetchPypi {
-      inherit (old) pname;
-      inherit version;
-      sha256 = "1flbpksir5sqrvq2z0dp8sl4bzbadg21sj4d42w3klpdfvgvcn5i";
-    };
-  });
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "pylink-square";
-  version = "0.8.1";
+  version = "0.13.0";
+
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "square";
     repo = "pylink";
     rev = "v${version}";
-    sha256 = "1q5sm1017pcqcgwhsliiiv1wh609lrjdlc8f5ihlschk1d0qidpd";
+    hash = "sha256-SH2oxOlsX5dE8wMXpWPA/rEVrJwxJzizsOiYbwaGjLw=";
   };
 
-  buildInputs = [ mock' ];
   propagatedBuildInputs = [ psutil six future ];
 
-  preCheck = ''
-    # For an unknown reason, `pylink --version` output is different
-    # inside the nix build environment across different python versions
-    substituteInPlace tests/unit/test_main.py --replace \
-      "expected = 'pylink %s' % pylink.__version__" \
-      "return"
-  '';
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "pylink" ];
 
   meta = with lib; {
     description = "Python interface for the SEGGER J-Link";
-    homepage = "https://github.com/Square/pylink";
+    homepage = "https://github.com/square/pylink";
+    changelog = "https://github.com/square/pylink/blob/${src.rev}/CHANGELOG.md";
     maintainers = with maintainers; [ dump_stack ];
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 9bb6cdf900d..5fa39298cb5 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -2,7 +2,6 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonAtLeast
 , pythonOlder
 , installShellFiles
 , astroid
@@ -11,6 +10,7 @@
 , mccabe
 , platformdirs
 , tomli
+, tomlkit
 , typing-extensions
 , GitPython
 , pytest-timeout
@@ -20,16 +20,16 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.13.5";
+  version = "2.14.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6.2";
+  disabled = pythonOlder "3.7.2";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FB99vmUtoTc0cTjDUSbx80Tesh0vASigSpPktrDYk08=";
+    sha256 = "sha256-rtyqHRDywv3l8bDgEjQlsh8lvwWbLswOPujFakaLWOw=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ buildPythonPackage rec {
     isort
     mccabe
     platformdirs
+    tomlkit
   ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ] ++ lib.optionals (pythonOlder "3.9") [
@@ -65,9 +66,7 @@ buildPythonPackage rec {
 
   dontUseSetuptoolsCheck = true;
 
-  # calls executable in one of the tests
   preCheck = ''
-    export PATH=$PATH:$out/bin
     export HOME=$TEMPDIR
   '';
 
@@ -78,7 +77,15 @@ buildPythonPackage rec {
     "tests/pyreverse/test_writer.py"
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  disabledTests = [
+    # AssertionError when self executing and checking output
+    # expected output looks like it should match though
+    "test_invocation_of_pylint_config"
+    "test_generate_rcfile"
+    "test_generate_toml_config"
+    "test_help_msg"
+    "test_output_of_callback_options"
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_parallel_execution"
     "test_py3k_jobs_option"
   ];
@@ -96,6 +103,6 @@ buildPythonPackage rec {
       - epylint: Emacs and Flymake compatible Pylint
     '';
     license = licenses.gpl1Plus;
-    maintainers = with maintainers; [ totoroot ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pymemcache/default.nix b/pkgs/development/python-modules/pymemcache/default.nix
index 81c05f4e97c..c9d3ef94d77 100644
--- a/pkgs/development/python-modules/pymemcache/default.nix
+++ b/pkgs/development/python-modules/pymemcache/default.nix
@@ -1,22 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, six
-, future
 , mock
+, six
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pymemcache";
-  version = "3.5.1";
+  version = "3.5.2";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "pinterest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DKqfv5gf9gzbnEPQSzy2mAaVYJZL9jmTKyGWVzj40T4=";
+    hash = "sha256-bsiFWZHGJO/07w6mFXzf0JwftJWClE2mTv86h8zT1K0=";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +26,6 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    future
     mock
     pytestCheckHook
   ];
@@ -38,7 +39,9 @@ buildPythonPackage rec {
     "TestClientSocketConnect"
   ];
 
-  pythonImportsCheck = [ "pymemcache" ];
+  pythonImportsCheck = [
+    "pymemcache"
+  ];
 
   meta = with lib; {
     description = "Python memcached client";
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index 3b91236a6cc..5153663c6e8 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -1,11 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
+, pytestCheckHook
 , six
 , enum34
 , pathlib
-, ordereddict
 , pythonOlder
 }:
 
@@ -20,23 +19,19 @@ buildPythonPackage rec {
     sha256 = "sha256-z0y4z+/JE6rZWHAvps/taDZvutyVhxxs2gMujV5rNu4=";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [ six ]
-    ++ (lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
-    ++ (lib.optionals (pythonOlder "2.7") [ ordereddict ]);
+    ++ lib.optionals (pythonOlder "3.4") [ enum34 pathlib ];
 
   # Test suite is broken.
   # See https://github.com/Kronuz/pyScss/issues/415
   doCheck = false;
-  checkPhase = ''
-    py.test
-  '';
 
   meta = with lib; {
     description = "A Scss compiler for Python";
     homepage = "https://pyscss.readthedocs.org/en/latest/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyserial/default.nix b/pkgs/development/python-modules/pyserial/default.nix
index b45b031fb84..92ef636932f 100644
--- a/pkgs/development/python-modules/pyserial/default.nix
+++ b/pkgs/development/python-modules/pyserial/default.nix
@@ -1,12 +1,21 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "pyserial";
-  version="3.5";
+  version = "3.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nyd4m4mnrz8scbfqn4zpq8gnbl4x42w5zz62vcgpzqd2waf0xrw";
+    hash = "sha256-PHfgFBcN//vYFub/wgXphC77EL6fWOwW0+hnW0klzds=";
   };
 
   patches = [
@@ -14,13 +23,22 @@ buildPythonPackage rec {
     ./002-rfc2217-timeout-setter-for-rfc2217.patch
   ];
 
-  checkPhase = "python -m unittest discover -s test";
   doCheck = !stdenv.hostPlatform.isDarwin; # broken on darwin
 
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover -s test
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "serial"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/pyserial/pyserial";
-    license = licenses.psfl;
     description = "Python serial port extension";
+    homepage = "https://github.com/pyserial/pyserial";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-annotate/default.nix b/pkgs/development/python-modules/pytest-annotate/default.nix
index bb4089c7536..d73e3b8f8e6 100644
--- a/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -1,5 +1,5 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyannotate
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09269320f8d218728247436f7ade96f33cf3fe85840b40632142d9f8968c1fd0";
+    hash = "sha256-CSaTIPjSGHKCR0Nvet6W8zzz/oWEC0BjIULZ+JaMH9A=";
   };
 
   buildInputs = [
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     pyannotate
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest>=3.2.0,<7.0.0" "pytest>=3.2.0"
+  '';
+
   # Module has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 7dc70c49280..c83724fa803 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -4,19 +4,23 @@
 , httpbin
 , pytest
 , pytestCheckHook
+, pythonOlder
 , requests
 , six
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
-  version = "1.0.1";
+  version = "1.0.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kevin1024";
     repo = "pytest-httpbin";
     rev = "v${version}";
-    hash = "sha256-Vngd8Vum96+rdG8Nz1+aHrO6WZjiAz+0CeIovaH8N+s=";
+    hash = "sha256-S4ThQx4H3UlKhunJo35esPClZiEn7gX/Qwo4kE1QMTI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index 1fb4023b2d9..6a66727b1eb 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.20.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "sha256-9LDbVZgTmfyYAWylUy6Q4KH2gKpAa/o4IhqQV31BVgY=";
+    hash = "sha256-mUzmtZCguaab4fAE7VcUhv+NQVYiPpxxHpiVVlzwrIo=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
index e3823c18d89..b64f3365dd6 100644
--- a/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -1,20 +1,25 @@
 { lib
+, aiosmtpd
 , buildPythonPackage
 , fetchPypi
 , werkzeug
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pytest-localserver";
-  version = "0.5.1.post0";
+  version = "0.6.0";
   format = "setuptools";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ec7f8e6534cf03887af2cb59e577f169ac0e8b2fd2c3e3409280035f386d407";
+    sha256 = "sha256-3cR5q6lqfaDnocx9OjA+UFgtbVBYA+j2e4JyGPn+D2U=";
   };
 
   propagatedBuildInputs = [
+    aiosmtpd
     werkzeug
   ];
 
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
index 5aae59bc605..8bb8c6d0637 100644
--- a/pkgs/development/python-modules/pytest-randomly/default.nix
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-randomly";
-  version = "3.11.0";
+  version = "3.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     repo = pname;
     owner = "pytest-dev";
     rev = version;
-    hash = "sha256-NoYpMpFWz52Z0+KIUumUFp3xMPA1jGw8COojU+bsgHc=";
+    hash = "sha256-n/Xp/HghqcQUreez+QbR3Mi5hE1U4zoOJCdFqD+pVBk=";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index b1df1ceaad6..4b88991bb74 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.7.0";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-lcRMd+P77emEi7iMqQs4SBX8uoCQ75qfVWWasWOxaBw=";
+    sha256 = "sha256-Rus3YCLpJpUIFszCNQLeMnetzBOWZS3bMyjOAokFLE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index 2f22a20afb3..5f985f0fafd 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
 , text-unidecode
@@ -9,14 +9,16 @@
 
 buildPythonPackage rec {
   pname = "python-slugify";
-  version = "6.1.1";
+  version = "6.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-AAAzl/TjFBTpIs5WezpNoozxQ2pT0zLJrutRx9jEaf0=";
+  src = fetchFromGitHub {
+    owner = "un33k";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-JGjUNBEMuICsaClQGDSGX4qFRjecVKzmpPNRUTvfwho=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index 60fcce9442a..62de8e72b4c 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -1,46 +1,68 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
+, py
 , pytestCheckHook
+, python
+, pythonOlder
 , tornado
 , zeromq
-, py
-, python
 }:
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "22.3.0";
+  version = "23.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c";
+    hash = "sha256-pF9cBHfRLfBe8uKSK0m3wK6dD0/5trsNZmVY3w7zcSI=";
   };
 
+  buildInputs = [
+    zeromq
+  ];
+
+  propagatedBuildInputs = [
+    py
+  ];
+
   checkInputs = [
     pytestCheckHook
     tornado
   ];
-  buildInputs = [ zeromq ];
-  propagatedBuildInputs = [ py ];
 
-  # failing tests
-  disabledTests = [
-    "test_socket" # hangs
-    "test_current"
-    "test_instance"
-    "test_callable_check"
-    "test_on_recv_basic"
-    "test_on_recv_wake"
-    "test_monitor" # https://github.com/zeromq/pyzmq/issues/1272
-    "test_cython"
-    "test_asyncio" # hangs
-    "test_mockable" # fails
+  pythonImportsCheck = [
+    "zmq"
   ];
 
   pytestFlagsArray = [
     "$out/${python.sitePackages}/zmq/tests/" # Folder with tests
   ];
 
+  disabledTests = [
+    # Tests hang
+    "test_socket"
+    "test_monitor"
+    # https://github.com/zeromq/pyzmq/issues/1272
+    "test_cython"
+    # Test fails
+    "test_mockable"
+    # Issues with the sandbox
+    "TestFutureSocket"
+    "TestIOLoop"
+    "TestPubLog"
+  ];
+
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Python bindings for ØMQ";
+    homepage = "https://pyzmq.readthedocs.io/";
+    license = with licenses; [ bsd3 /* or */ lgpl3Only ];
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/pkgs/development/python-modules/qiling/default.nix b/pkgs/development/python-modules/qiling/default.nix
index 72995432814..fcceaa3d007 100644
--- a/pkgs/development/python-modules/qiling/default.nix
+++ b/pkgs/development/python-modules/qiling/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "qiling";
-  version = "1.4.2";
+  version = "1.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-myUGzNP4bf90d2gY5ZlYbVlTG640dj/Qha8/aMydvuw=";
+    hash = "sha256-sndRKknfY3LgqUf6FOobwczIStjzZkudVgUR1EQSyeU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index 75c186fc835..e99deef489f 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -1,70 +1,91 @@
-{ lib, stdenv, fetchFromGitHub, buildPythonPackage, python, packaging, numpy
-, cython, scipy, matplotlib, pytestCheckHook, pytest-rerunfailures
-, doCheck ? false
+{ lib
+, stdenv
+, buildPythonPackage
+, cvxopt
+, cvxpy
+, cython
+, doCheck ? true
+, fetchFromGitHub
+, matplotlib
+, numpy
+, packaging
+, pytest-rerunfailures
+, pytestCheckHook
+, python
+, pythonOlder
+, scipy
 }:
 
-let
-  self = buildPythonPackage rec {
-    pname = "qutip";
-    version = "4.6.3";
+buildPythonPackage rec {
+  pname = "qutip";
+  version = "4.7.0";
+  format = "setuptools";
 
-    src = fetchFromGitHub {
-      owner = pname;
-      repo = pname;
-      rev = "v${version}";
-      sha256 = "sha256-11K7Tl7PE98nM2vGsa+OKIJYu0Wmv8dT700PDt9RRVk=";
-    };
+  disabled = pythonOlder "3.7";
 
-    # QuTiP says it needs specific (old) Numpy versions. We overwrite them here
-    # as the tests work perfectly fine with up-to-date packages.
-    postPatch = ''
-      substituteInPlace setup.cfg --replace "numpy>=1.16.6,<1.20" "numpy>=1.16.6"
-    '';
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-wGr6uTM6pFL2nvN4zdqPdEO8O3kjrRtKWx8luL1t9Sw=";
+  };
 
-    # Disabling OpenMP support on Darwin.
-    setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) "--with-openmp";
+  nativeBuildInputs = [
+    cython
+  ];
 
-    propagatedBuildInputs = [
-      packaging
-      numpy
-      cython
-      scipy
-      matplotlib
-    ];
+  propagatedBuildInputs = [
+    numpy
+    packaging
+    scipy
+  ];
 
-    checkInputs = [
-      pytestCheckHook
-      pytest-rerunfailures
-    ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-rerunfailures
+  ] ++ passthru.optional-dependencies.graphics;
+
+  # Disabling OpenMP support on Darwin.
+  setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) [
+    "--with-openmp"
+  ];
 
-    # test suite is very cpu intensive
-    inherit doCheck;
-    # - QuTiP tries to access the home directory to create an rc file for us.
-    # This of course fails and therefore, we provide a writable temp dir as HOME.
-    # - We need to go to another directory to run the tests from there.
-    # This is due to the Cython-compiled modules not being in the correct location
-    # of the source tree.
-    # - For running tests, see:
-    # https://qutip.org/docs/latest/installation.html#verifying-the-installation
-    checkPhase = ''
-      export OMP_NUM_THREADS=$NIX_BUILD_CORES
-      export HOME=$(mktemp -d)
-      mkdir -p test && cd test
-      ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
-    '';
+  # QuTiP tries to access the home directory to create an rc file for us.
+  # We need to go to another directory to run the tests from there.
+  # This is due to the Cython-compiled modules not being in the correct location
+  # of the source tree.
+  preCheck = ''
+    export HOME=$(mktemp -d);
+    export OMP_NUM_THREADS=$NIX_BUILD_CORES
+    mkdir -p test && cd test
+  '';
 
-    pythonImportsCheck = [ "qutip" ];
+  # For running tests, see https://qutip.org/docs/latest/installation.html#verifying-the-installation
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
+    runHook postCheck
+  '';
 
-    passthru.tests = {
-      all-tests = self.override { doCheck = true; };
-    };
+  pythonImportsCheck = [
+    "qutip"
+  ];
+
+  passthru.optional-dependencies = {
+    graphics = [
+      matplotlib
+    ];
+    semidefinite = [
+      cvxpy
+      cvxopt
+    ];
+  };
 
-    meta = with lib; {
-      broken = (stdenv.isLinux && stdenv.isAarch64);
-      description = "Open-source software for simulating the dynamics of closed and open quantum systems";
-      homepage = "https://qutip.org/";
-      license = licenses.bsd3;
-      maintainers = [ maintainers.fabiangd ];
-    };
+  meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    description = "Open-source software for simulating the dynamics of closed and open quantum systems";
+    homepage = "https://qutip.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fabiangd ];
   };
-in self
+}
diff --git a/pkgs/development/python-modules/raven/default.nix b/pkgs/development/python-modules/raven/default.nix
index 45a408640b5..cdcec2bf249 100644
--- a/pkgs/development/python-modules/raven/default.nix
+++ b/pkgs/development/python-modules/raven/default.nix
@@ -1,5 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, contextlib2, blinker
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, blinker
+, flask
 }:
 
 buildPythonPackage rec {
@@ -13,14 +16,17 @@ buildPythonPackage rec {
     sha256 = "16x9ldl8cy7flw5kh7qmgbmflqyf210j3q6ac2lw61sgwajsnvw8";
   };
 
-  # way too many dependencies to run tests
-  # see https://github.com/getsentry/raven-python/blob/master/setup.py
+  # requires outdated dependencies which have no official support for python 3.4
   doCheck = false;
 
-  propagatedBuildInputs = [ blinker ] ++ lib.optionals (!isPy3k) [ contextlib2 ];
+  pythonImportsCheck = [ "raven" ];
+
+  passthru.optional-dependencies = {
+    flask = [ blinker flask ];
+  };
 
   meta = {
-    description = "A Python client for Sentry (getsentry.com)";
+    description = "Legacy Python client for Sentry (getsentry.com) — replaced by sentry-python";
     homepage = "https://github.com/getsentry/raven-python";
     license = [ lib.licenses.bsd3 ];
     maintainers = with lib.maintainers; [ primeos ];
diff --git a/pkgs/development/python-modules/repoze_lru/default.nix b/pkgs/development/python-modules/repoze_lru/default.nix
index e986f47e6e0..cfe19f6b637 100644
--- a/pkgs/development/python-modules/repoze_lru/default.nix
+++ b/pkgs/development/python-modules/repoze_lru/default.nix
@@ -12,11 +12,12 @@ buildPythonPackage rec {
     sha256 = "0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77";
   };
 
+  pythonImportsCheck = [ "repoze.lru" ];
+
   meta = with lib; {
     description = "A tiny LRU cache implementation and decorator";
     homepage = "http://www.repoze.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 559ce70533c..be996151f98 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, pythonOlder
 , brotli
 , brotlicffi
 , buildPythonPackage
@@ -21,6 +22,8 @@ buildPythonPackage rec {
   pname = "requests";
   version = "2.27.1";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-aNfFb9WomZiHco7zBKbRLtx7508c+kdxT8i0FFJcmmE=";
@@ -32,23 +35,29 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    brotlicffi
     certifi
+    charset-normalizer
     idna
     urllib3
-    chardet
-  ] ++ lib.optionals isPy3k [
-    brotlicffi
-    charset-normalizer
-  ] ++ lib.optionals isPy27 [
-    brotli
   ];
 
+  passthru.optional-dependencies = {
+    security = [];
+    socks = [
+      pysocks
+    ];
+    use_chardet_on_py3 = [
+      chardet
+    ];
+  };
+
   checkInputs = [
-    pysocks
     pytest-mock
     pytest-xdist
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.optional-dependencies.socks;
 
   # AttributeError: 'KeywordMapping' object has no attribute 'get'
   doCheck = !isPy27;
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 7f9372dcdb7..1343aa6cfd0 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.20.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = pname;
     rev = version;
-    hash = "sha256-dhIKMQXBJfZGIanJN1bFmlr/FYL1UYgYKGYaSznKhZs=";
+    hash = "sha256-qYohrXrQkUBPo7yC+ZOwidDaCg/2nteXKAOCUvR4k2Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index fefec51c2bc..23c113bc46d 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -8,6 +8,7 @@
 , fetchFromGitHub
 , poetry-core
 , pytest-asyncio
+, pytest-freezegun
 , pytestCheckHook
 , pythonOlder
 , xmltodict
@@ -43,8 +44,9 @@ buildPythonPackage rec {
 
   checkInputs = [
     aresponses
-    pytestCheckHook
     pytest-asyncio
+    pytest-freezegun
+    pytestCheckHook
   ];
 
   postPatch = ''
@@ -59,6 +61,9 @@ buildPythonPackage rec {
     "test_get_dns_state"
     # Assertion issue
     "test_guess_stream_format"
+    "test_update_tv"
+    "test_get_apps_single_app"
+    "test_get_tv_channels_single_channel"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/routes/default.nix b/pkgs/development/python-modules/routes/default.nix
index 1176fcb4eb0..ea548fcfe56 100644
--- a/pkgs/development/python-modules/routes/default.nix
+++ b/pkgs/development/python-modules/routes/default.nix
@@ -5,30 +5,29 @@
 , six
 , soupsieve
 , webob
-, coverage
-, webtest
 }:
 
 buildPythonPackage rec {
-  pname = "Routes";
+  pname = "routes";
   version = "2.5.1";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Routes";
+    inherit version;
     sha256 = "b6346459a15f0cbab01a45a90c3d25caf980d4733d628b4cc1952b865125d053";
   };
 
   propagatedBuildInputs = [ repoze_lru six soupsieve webob ];
+
   # incompatible with latest soupsieve
   doCheck = false;
-  checkInputs = [ coverage soupsieve webtest ];
 
   pythonImportsCheck = [ "routes" ];
 
   meta = with lib; {
-    description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
-    homepage = "http://routes.groovie.org/";
+    description = "Re-implementation of the Rails routes system for mapping URLs to application actions";
+    homepage = "https://github.com/bbangert/routes";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index 4bfe4be5e8c..18332b23415 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -1,19 +1,24 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
+, aiobotocore
+, aiohttp
 , buildPythonPackage
-, fetchPypi
 , docutils
-, aiobotocore
+, fetchPypi
 , fsspec
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2022.2.0";
+  version = "2022.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RhHQ9+QeW8nawwCQcOCtN9qHpC9t73W0gTwG9+QEpzg=";
+    hash = "sha256-tAo8v6+Ay6uvDjMjMRF8ysaSkO/aw0cYT7OrYAP3BGU=";
   };
 
   buildInputs = [
@@ -22,6 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiobotocore
+    aiohttp
     fsspec
   ];
 
@@ -30,7 +36,9 @@ buildPythonPackage rec {
   # pythonPackages.
   doCheck = false;
 
-  pythonImportsCheck = [ "s3fs" ];
+  pythonImportsCheck = [
+    "s3fs"
+  ];
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/sanic-testing/default.nix b/pkgs/development/python-modules/sanic-testing/default.nix
index 173e2b91ff7..398f3dad632 100644
--- a/pkgs/development/python-modules/sanic-testing/default.nix
+++ b/pkgs/development/python-modules/sanic-testing/default.nix
@@ -23,6 +23,10 @@ buildPythonPackage rec {
     "testsout"
   ];
 
+  postPatch = ''
+    sed -i 's/httpx>=.*"/httpx"/' setup.py
+  '';
+
   propagatedBuildInputs = [
     httpx
     sanic
diff --git a/pkgs/development/python-modules/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index 3f594c5a59f..dc108502ce9 100644
--- a/pkgs/development/python-modules/selectors2/default.nix
+++ b/pkgs/development/python-modules/selectors2/default.nix
@@ -10,6 +10,10 @@ buildPythonPackage rec {
     sha256 = "1f1bbaac203a23fbc851dc1b5a6e92c50698cc8cefa5873eb5b89eef53d1d82b";
   };
 
+  patches = [
+    ./mapping-import.patch
+  ];
+
   checkInputs = [ nose psutil mock ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/selectors2/mapping-import.patch b/pkgs/development/python-modules/selectors2/mapping-import.patch
new file mode 100644
index 00000000000..64f74a5ce29
--- /dev/null
+++ b/pkgs/development/python-modules/selectors2/mapping-import.patch
@@ -0,0 +1,14 @@
+diff --git a/selectors2.py b/selectors2.py
+index 1625a30..c4a1231 100644
+--- a/selectors2.py
++++ b/selectors2.py
+@@ -22,7 +22,8 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+ 
+-from collections import namedtuple, Mapping
++from collections import namedtuple
++from collections.abc import Mapping
+ import errno
+ import math
+ import platform
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix
index e606819159c..a1db98deeb7 100644
--- a/pkgs/development/python-modules/selenium/default.nix
+++ b/pkgs/development/python-modules/selenium/default.nix
@@ -1,59 +1,54 @@
 { lib
-, stdenv
-, fetchPypi
 , fetchFromGitHub
 , buildPythonPackage
 , geckodriver
+, pytestCheckHook
+, pythonOlder
+, trio
+, trio-websocket
 , urllib3
-, xorg
 , nixosTests
 }:
 
-let
-  # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
-  # absolute paths. Replaced by relative path so it is found when used in nix.
-  x_ignore_nofocus =
-    fetchFromGitHub {
-      owner = "SeleniumHQ";
-      repo = "selenium";
-      rev = "selenium-3.6.0";
-      sha256 = "13wf4hx4i7nhl4s8xkziwxl0km1j873syrj4amragj6mpip2wn8v";
-    };
-in
-
 buildPythonPackage rec {
   pname = "selenium";
-  version = "3.141.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "039hf9knvl4s3hp21bzwsp1g5ri9gxsh504dp48lc6nr1av35byy";
+  version = "4.2.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "SeleniumHQ";
+    repo = "selenium";
+    rev = "selenium-${version}"; # check if there is a newer tag with -python suffix
+    sha256 = "sha256-KhBCMsWGRD7hJqumA1+K8AVhJ7hq26XkEa1QbgY0Q0w=";
   };
 
-  buildInputs = [ xorg.libX11 ];
+  postPatch = ''
+    substituteInPlace py/selenium/webdriver/firefox/service.py \
+      --replace 'DEFAULT_EXECUTABLE_PATH = "geckodriver"' 'DEFAULT_EXECUTABLE_PATH = "${geckodriver}/bin/geckodriver"'
+  '';
+
+  preConfigure = ''
+    cd py
+  '';
 
   propagatedBuildInputs = [
-    geckodriver urllib3
+    trio
+    trio-websocket
+    urllib3
+  ] ++ urllib3.optional-dependencies.secure
+  ++ urllib3.optional-dependencies.socks;
+
+  checkInputs = [
+    pytestCheckHook
   ];
 
-  postPatch = lib.optionalString stdenv.isLinux ''
-    cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
-    substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${lib.getLib xorg.libX11}/lib/libX11.so.6"
-    cc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
-    cc -shared \
-      -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
-      -o x_ignore_nofocus.so \
-      x_ignore_nofocus.o
-    cp -v x_ignore_nofocus.so selenium/webdriver/firefox/${if stdenv.is64bit then "amd64" else "x86"}/
-  '';
-
   passthru.tests = {
     testing-vaultwarden = nixosTests.vaultwarden;
   };
 
   meta = with lib; {
-    description = "The selenium package is used to automate web browser interaction from Python";
-    homepage = "http://www.seleniumhq.org";
+    description = "Bindings for Selenium WebDriver";
+    homepage = "https://selenium.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ jraygauthier ];
   };
diff --git a/pkgs/development/python-modules/simple-rest-client/default.nix b/pkgs/development/python-modules/simple-rest-client/default.nix
index d4cbfdbfb94..4b5b2ed0681 100644
--- a/pkgs/development/python-modules/simple-rest-client/default.nix
+++ b/pkgs/development/python-modules/simple-rest-client/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "simple-rest-client";
-  version = "1.1.2";
+  version = "1.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "allisson";
     repo = "python-simple-rest-client";
     rev = version;
-    sha256 = "sha256-kyoFtPa94c5EAT7wBEXdkPEg8Bp3hJQQoFsutap1qvs=";
+    sha256 = "sha256-HdGYLDrqQvd7hvjwhC5dY2amdHUZHTYJvD1QP89lcXU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sleekxmpp/default.nix b/pkgs/development/python-modules/sleekxmpp/default.nix
index 187ae018fdd..41578b3dc04 100644
--- a/pkgs/development/python-modules/sleekxmpp/default.nix
+++ b/pkgs/development/python-modules/sleekxmpp/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, dnspython, pyasn1 }:
+{ stdenv, lib, fetchPypi, buildPythonPackage, pythonAtLeast, dnspython, pyasn1 }:
 
 buildPythonPackage rec {
   pname = "sleekxmpp";
   version = "1.3.3";
 
+  disabled = pythonAtLeast "3.10"; # Deprecated in favor of Slixmpp
+
   propagatedBuildInputs = [ dnspython pyasn1 ];
 
   patches = [
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 5077bbd2d17..06474e645e4 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -45,7 +45,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "pyOpenSSL>=16.2.0,<23.0.0" "pyOpenSSL"
+      --replace "pyOpenSSL>=16.2.0,<23.0.0" "pyOpenSSL" \
+      --replace "cryptography>=3.1.0,<37.0.0" "cryptography"
   '';
 
   # Tests require encrypted secrets, see
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index e40a3f8b588..b2b6f92a01a 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -1,8 +1,9 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, sqlalchemy
+, six
 , snowflake-connector-python
+, sqlalchemy
 }:
 
 buildPythonPackage rec {
@@ -15,8 +16,9 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    sqlalchemy
+    six
     snowflake-connector-python
+    sqlalchemy
   ];
 
   # Pypi does not include tests
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index 98933759f0b..379159180a0 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -2,6 +2,7 @@
 , beautifulsoup4
 , buildPythonPackage
 , fetchFromGitHub
+, filelock
 , lxml
 , pythonOlder
 , pytz
@@ -11,15 +12,16 @@
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "unstable-2021-08-30";
+  version = "0.4.3.20220106";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "JustAnotherArchivist";
     repo = pname;
-    rev = "c76f1637ce1d7a154af83495b67ead2559cd5715";
-    sha256 = "01x4961fxj1p98y6fcyxw5sv8fa87x41fdx9p31is12bdkmqxi6v";
+    rev = "v${version}";
+    hash = "sha256-gphNT1IYSiAw22sqHlV8Rm4WRP4EWUvP0UkITuepmMc=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -30,9 +32,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     beautifulsoup4
+    filelock
     lxml
     requests
-  ] ++ lib.optionals (pythonOlder "3.9") [
+  ]
+  ++ requests.optional-dependencies.socks
+  ++ lib.optionals (pythonOlder "3.9") [
     pytz
   ];
 
@@ -42,11 +47,13 @@ buildPythonPackage rec {
     snscrape --help
   '';
 
-  pythonImportsCheck = [ "snscrape" ];
+  pythonImportsCheck = [
+    "snscrape"
+  ];
 
   meta = with lib; {
+    description = "A social networking service scraper";
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
-    description = "A social networking service scraper in Python";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivan ];
   };
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
index bbc3f8edbf2..ac0a3936313 100644
--- a/pkgs/development/python-modules/sopel/default.nix
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -1,11 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy
+{ lib
+, buildPythonPackage
 , dnspython
+, fetchPypi
 , geoip2
 , ipython
+, isPyPy
 , praw
 , pyenchant
 , pygeoip
 , pytestCheckHook
+, pythonOlder
 , pytz
 , sqlalchemy
 , xmltodict
@@ -13,12 +17,14 @@
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "7.1.8";
-  disabled = isPyPy;
+  version = "7.1.9";
+  format = "setuptools";
+
+  disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zxb95GVcDrd3FG/k+0PLg+dVlMgQpf1ntG8jF/zpHH4=";
+    hash = "sha256-IJ+ovLQv6/UU1oepmUQjzaWBG3Rdd3xvui7FjK85Urs=";
   };
 
   propagatedBuildInputs = [
@@ -33,15 +39,17 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "praw>=4.0.0,<6.0.0" "praw" \
-      --replace "sqlalchemy<1.4" "sqlalchemy"
+      --replace "sqlalchemy<1.4" "sqlalchemy" \
+      --replace "xmltodict==0.12" "xmltodict>=0.12"
   '';
 
-  checkInputs = [ pytestCheckHook ];
-
   preCheck = ''
     export TESTDIR=$(mktemp -d)
     cp -R ./test $TESTDIR
@@ -52,7 +60,9 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [ "sopel" ];
+  pythonImportsCheck = [
+    "sopel"
+  ];
 
   meta = with lib; {
     description = "Simple and extensible IRC bot";
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 6c50cc6e115..8d92e49427a 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -1,8 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
-, beautifulsoup4
 , isPy3k
 , backports_functools_lru_cache
 }:
@@ -16,21 +14,18 @@ buildPythonPackage rec {
     sha256 = "b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9";
   };
 
-  checkPhase = ''
-    py.test
-  '';
-
-  checkInputs = [ pytest beautifulsoup4 ];
-
   propagatedBuildInputs = lib.optional (!isPy3k) backports_functools_lru_cache;
 
-  # Circular test dependency on beautifulsoup4
+  # Circular dependency on beautifulsoup4
   doCheck = false;
 
-  meta = {
+  # Circular dependency on beautifulsoup4
+  # pythonImportsCheck = [ "soupsieve" ];
+
+  meta = with lib; {
     description = "A CSS4 selector implementation for Beautiful Soup";
-    license = lib.licenses.mit;
+    license = licenses.mit;
     homepage = "https://github.com/facelessuser/soupsieve";
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index c081ab5e3a1..2a11e1f1458 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -1,24 +1,24 @@
 { lib
 , buildPythonPackage
+, dask
 , fetchPypi
-, isPy3k
 , numba
 , numpy
-, scipy
-  # Test Inputs
 , pytestCheckHook
-, dask
+, pythonOlder
+, scipy
 }:
 
 buildPythonPackage rec {
   pname = "sparse";
   version = "0.13.0";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "685dc994aa770ee1b23f2d5392819c8429f27958771f8dceb2c4fb80210d5915";
+    hash = "sha256-aF3JlKp3DuGyPy1TkoGchCnyeVh3H43OssT7gCENWRU=";
   };
 
   propagatedBuildInputs = [
@@ -26,16 +26,22 @@ buildPythonPackage rec {
     numpy
     scipy
   ];
-  checkInputs = [ pytestCheckHook dask ];
 
-  pythonImportsCheck = [ "sparse" ];
+  checkInputs = [
+    dask
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sparse"
+  ];
 
   meta = with lib; {
     description = "Sparse n-dimensional arrays computations";
-    homepage = "https://sparse.pydata.org/en/stable/";
+    homepage = "https://sparse.pydata.org/";
     changelog = "https://sparse.pydata.org/en/stable/changelog.html";
     downloadPage = "https://github.com/pydata/sparse/releases/tag/${version}";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
index 4b44619b4c3..6f53dd79d36 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
@@ -16,10 +16,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinxcontrib.bayesnet" ];
 
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://github.com/jluttine/sphinx-bayesnet";
     description = "Bayesian networks and factor graphs in Sphinx using TikZ syntax";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ jluttine ];
+    broken = true; # relies on 2to3 conversion, which was removed from setuptools>=58.0
   };
 }
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index 9a80bb93621..a368d1a8113 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , selenium
-, six
 , flask
 , pytestCheckHook
 }:
@@ -20,7 +19,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     selenium
-    six
   ];
 
   checkInputs = [
@@ -28,8 +26,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # driver is present and fails with a different error during loading
+    "test_local_driver_not_present"
+  ];
+
   disabledTestPaths = [
     "samples"
+    # TODO: requires optional dependencies which should be defined in passthru.optional-dependencies.$name
     "tests/test_djangoclient.py"
     "tests/test_flaskclient.py"
     "tests/test_popups.py"
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 0bed203007c..544bdccd2cb 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.4.36";
+  version = "1.4.37";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZGeKwyHWSkWQHvLiRyXsXng/H0pYgwXhlkMUR+es4kM=";
+    hash = "sha256-Noj5LGLbbF3yaOImSJEHjxfsuR4xQbQA8uKND3V5beo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index caa841339e1..05c3cd829f9 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.19.0";
+  version = "0.20.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gjRTMzoQ8pqxjIusRwRXGs72VYo6xsp2DSUxmEr9KxU=";
+    hash = "sha256-PUZ9joOhXkL1K2yi0baiuY74PIi71V/epX8zdcUv1DA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index ae2cd950435..0b2fb134a92 100644
--- a/pkgs/development/python-modules/streamz/default.nix
+++ b/pkgs/development/python-modules/streamz/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , confluent-kafka
 , distributed
+, fetchpatch
 , fetchPypi
 , flaky
 , graphviz
@@ -15,7 +16,6 @@
 , toolz
 , tornado
 , zict
-, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0wZ1ldLFRAIL9R+gLfwsFbL+gvdORAkYWNjnDmeafm8=";
+    hash = "sha256-0wZ1ldLFRAIL9R+gLfwsFbL+gvdORAkYWNjnDmeafm8=";
   };
 
   patches = [
@@ -36,7 +36,9 @@ buildPythonPackage rec {
       name = "fix-tests-against-distributed-2021.10.0.patch";
       url = "https://github.com/python-streamz/streamz/commit/5bd3bc4d305ff40c740bc2550c8491be9162778a.patch";
       sha256 = "1xzxcbf7yninkyizrwm3ahqk6ij2fmh0454iqjx2n7mmzx3sazx7";
-      includes = ["streamz/tests/test_dask.py"];
+      includes = [
+        "streamz/tests/test_dask.py"
+      ];
     })
   ];
 
@@ -63,15 +65,17 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # test_tcp_async fails on sandbox build
+    # Test fail in the sandbox
     "test_tcp_async"
     "test_tcp"
     "test_partition_timeout"
-    # flaky
-    "test_from_iterable_backpressure"
+    # Tests are flaky
+    "test_from_iterable"
+    "test_buffer"
   ];
+
   disabledTestPaths = [
-    # disable kafka tests
+    # Disable kafka tests
     "streamz/tests/test_kafka.py"
   ];
 
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 0faea93ebde..f3fe08821f5 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2022.3.25";
+  version = "2022.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bZQ/LAGxo0pHbJY9EZVl+6EI9VngYUJsY6UVeEaVntk=";
+    hash = "sha256-sDFHoVhit8HZDUdDUZfxSb73pSwlrWfPH5tGX6pxuNI=";
   };
 
   propagatedBuildInputs = [
@@ -40,6 +40,9 @@ buildPythonPackage rec {
     "test_write_ome"
     # Test file is missing
     "test_write_predictor"
+    # AssertionError
+    "test_write_bigtiff"
+    "test_write_imagej_raw"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/trio-websocket/default.nix b/pkgs/development/python-modules/trio-websocket/default.nix
new file mode 100644
index 00000000000..3b33b80e921
--- /dev/null
+++ b/pkgs/development/python-modules/trio-websocket/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, async_generator
+, pytest-trio
+, pytestCheckHook
+, trio
+, trustme
+, wsproto
+}:
+
+buildPythonPackage rec {
+  pname = "trio-websocket";
+  version = "0.9.2";
+
+  src = fetchFromGitHub {
+    owner = "HyperionGray";
+    repo = "trio-websocket";
+    rev = version;
+    sha256 = "sha256-8VrpI/pk5IhEvqzo036cnIbJ1Hu3UfQ6GHTNkNJUYvo=";
+  };
+
+  propagatedBuildInputs = [
+    async_generator
+    trio
+    wsproto
+  ];
+
+  checkInputs = [
+    pytest-trio
+    pytestCheckHook
+    trustme
+  ];
+
+  pythonImportsCheck = [ "trio_websocket" ];
+
+  meta = with lib; {
+    description = "WebSocket client and server implementation for Python Trio";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 6cfb7f36047..c3e4682d5a7 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gXqgwL3AKl6+MgUeFo4jxxoGCDNOYkx5MBHxINu8Bbc=";
+    sha256 = "sha256-lrHPEveuYRpKQLaujpVwIV2v8GEYKPX+HzehYlWrJKA=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -42,6 +42,8 @@ buildPythonPackage rec {
   # Requires network
   doCheck = false;
 
+  pythonImportsCheck = [ "twine" ];
+
   meta = {
     description = "Collection of utilities for interacting with PyPI";
     homepage = "https://github.com/pypa/twine";
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index 87116017063..0c5e1fa3cd2 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.5.2";
+  version = "1.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "python";
     repo = "typed_ast";
     rev = version;
-    hash = "sha256-Ul1FIS1a1f8l3tX+m8Bj/LsLQW1sXJv6XzEZ9zh8rfI=";
+    hash = "sha256-GRmKw7SRrrIIb61VeB8GLhSKCmLUd54AA+GAf43vor8=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/types-typed-ast/default.nix b/pkgs/development/python-modules/types-typed-ast/default.nix
index 2c8e2a09580..ca45ec7039b 100644
--- a/pkgs/development/python-modules/types-typed-ast/default.nix
+++ b/pkgs/development/python-modules/types-typed-ast/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-typed-ast";
-  version = "1.5.4";
+  version = "1.5.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MlOHn/Y6+4lkZa/kIoocTfLmPNw57vm5dD1QC42aUXY=";
+    hash = "sha256-UzmUeAz3KbdAwUdQZsRAdi8pqZvalRHU+mhdXuOoQ4k=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/unidecode/default.nix b/pkgs/development/python-modules/unidecode/default.nix
index f16fec644db..96e487871aa 100644
--- a/pkgs/development/python-modules/unidecode/default.nix
+++ b/pkgs/development/python-modules/unidecode/default.nix
@@ -7,7 +7,8 @@
 
 buildPythonPackage rec {
   pname = "unidecode";
-  version = "1.3.2";
+  version = "1.3.4";
+  format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
@@ -15,7 +16,7 @@ buildPythonPackage rec {
     owner = "avian2";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "07789mrq0gjxrg1b9a3ypzzfww224sbj25wl0h9nik22sjwi8qhh";
+    hash = "sha256-2LRV6Egst2bdxefEzfuA9Ef8zMSWvmlCEV/sIzezyPw=";
   };
 
   checkInputs = [
@@ -27,8 +28,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://pypi.python.org/pypi/Unidecode/";
     description = "ASCII transliterations of Unicode text";
+    homepage = "https://pypi.python.org/pypi/Unidecode/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 6d29a107f00..8a79241eebc 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -1,11 +1,13 @@
 { lib
 , brotli
+, brotlicffi
 , buildPythonPackage
+, certifi
 , cryptography
 , python-dateutil
 , fetchPypi
+, isPyPy
 , idna
-, isPy27
 , mock
 , pyopenssl
 , pysocks
@@ -26,14 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-qrrxZHeAal4d0ZqkH4wreVDdPHRjYtfjIj2+beasRI4=";
   };
 
-  propagatedBuildInputs = [
-    brotli
-    pysocks
-  ] ++ lib.optionals isPy27 [
-    cryptography
-    idna
-    pyopenssl
-  ];
+  # FIXME: remove backwards compatbility hack
+  propagatedBuildInputs = passthru.optional-dependencies.brotli
+    ++ passthru.optional-dependencies.secure;
 
   checkInputs = [
     python-dateutil
@@ -66,6 +63,12 @@ buildPythonPackage rec {
     "urllib3"
   ];
 
+  passthru.optional-dependencies = {
+    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
+    secure = [ certifi cryptography idna pyopenssl ];
+    socks = [ pysocks ];
+  };
+
   meta = with lib; {
     description = "Powerful, sanity-friendly HTTP client for Python";
     homepage = "https://github.com/shazow/urllib3";
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 2ed3bec5a73..cc9f884f7cb 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , asgiref
 , click
-, colorama
 , h11
 , httptools
 , python-dotenv
@@ -37,7 +36,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     asgiref
     click
-    colorama
     h11
     httptools
     python-dotenv
diff --git a/pkgs/development/python-modules/vulture/default.nix b/pkgs/development/python-modules/vulture/default.nix
index 7ab5bcbb65b..e1dd04ed75f 100644
--- a/pkgs/development/python-modules/vulture/default.nix
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -1,32 +1,39 @@
 { lib
 , buildPythonPackage
-, coverage
 , fetchPypi
-, isPy27
-, pytest-cov
+, pythonOlder
 , pytestCheckHook
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "vulture";
-  version = "2.3";
-  disabled = isPy27;
+  version = "2.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ryrmsm72z3fzaanyblz49q40h9d3bbl4pspn2lvkkp9rcmsdm83";
+    hash = "sha256-gZQ5KUp2tOC44Ixw11VlqM49wfbgNVjtEjpfK7c3wOo=";
   };
 
-  propagatedBuildInputs = [ toml ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --cov vulture --cov-report=html --cov-report=term --cov-report=xml --cov-append" ""
+  '';
+
+  propagatedBuildInputs = [
+    toml
+  ];
 
   checkInputs = [
-    coverage
-    pytest-cov
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "vulture" ];
+  pythonImportsCheck = [
+    "vulture"
+  ];
 
   meta = with lib; {
     description = "Finds unused code in Python programs";
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index ce9432ee296..e4576a303c5 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -2,18 +2,15 @@
 , fetchPypi
 , fetchpatch
 , pytestCheckHook
-, brotli
 , cairosvg
 , flit-core
 , fonttools
 , pydyf
 , pyphen
 , cffi
-, cssselect
-, lxml
+, cssselect2
 , html5lib
-, tinycss
-, zopfli
+, tinycss2
 , glib
 , harfbuzz
 , pango
@@ -23,6 +20,7 @@
 , ghostscript
 , isPy3k
 , substituteAll
+, pillow
 }:
 
 buildPythonPackage rec {
@@ -61,19 +59,15 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    brotli
-    cairosvg
     cffi
-    cssselect
+    cssselect2
     fonttools
     html5lib
-    lxml
-    flit-core
+    pillow
     pydyf
     pyphen
-    tinycss
-    zopfli
-  ];
+    tinycss2
+  ] ++ fonttools.optional-dependencies.woff;
 
   checkInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
index 201893c2536..e4fb4f0ea32 100644
--- a/pkgs/development/python-modules/webob/default.nix
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -1,25 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
-, pytest
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "WebOb";
+  pname = "webob";
   version = "1.8.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323";
+    pname = "WebOb";
+    inherit version;
+    hash = "sha256-tk71FBvlWc+t5EjwRPpFwiYDUe3Lao72t+AMfc7wwyM=";
   };
 
-  propagatedBuildInputs = [ nose pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "webob"
+  ];
+
+  disabledTestPaths = [
+    # AttributeError: 'Thread' object has no attribute 'isAlive'
+    "tests/test_in_wsgiref.py"
+    "tests/test_client_functional.py"
+  ];
 
   meta = with lib; {
     description = "WSGI request and response object";
-    homepage = "http://pythonpaste.org/webob/";
+    homepage = "https://webob.org/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/websockets/default.nix b/pkgs/development/python-modules/websockets/default.nix
index 7d6f78902d0..538055b9890 100644
--- a/pkgs/development/python-modules/websockets/default.nix
+++ b/pkgs/development/python-modules/websockets/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "websockets";
-  version = "10.1";
+  version = "10.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "aaugustin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FFaoqxa+TmKJ+P6T7HrwodjbVCir+2qJSfZsoj6deJU=";
+    hash = "sha256-ZUn/DvO1Kx7Uxne4DF/am69YL1c48qpgQrGek355Z+4=";
   };
 
   # Tests fail on Darwin with `OSError: AF_UNIX path too long`
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 291da467e9e..53ff69168a5 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "unstable-2022-04-13";
+  version = "6.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,9 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
-    # Support for later Python releases is missing in 6.0.3
-    rev = "f888df7df5cb8839927e9187c258769cc77fb7a3";
-    hash = "sha256-V1ws5GibRkutFRNcjlP7aW+AshSyWavXIxuwznVbRlU=";
+    rev = version;
+    hash = "sha256-CRZG898xCwukq+9YVkyXMP8HcuJ9GtvDhy96kxvRFks=";
   };
 
   propagatedBuildInputs = [
@@ -48,7 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python cross-version byte-code disassembler and marshal routines";
-    homepage = "https://github.com/rocky/python-xdis/";
+    homepage = "https://github.com/rocky/python-xdis";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix
index e0a9f4c5d73..19c2b1d283f 100644
--- a/pkgs/development/python-modules/xmltodict/default.nix
+++ b/pkgs/development/python-modules/xmltodict/default.nix
@@ -2,22 +2,26 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "xmltodict";
-  version = "0.12.0";
+  version = "0.13.0";
   format = "setuptools";
+  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21";
+    sha256 = "sha256-NBWVpIjj4BqFqdiRHYkS/ZIu3l/sxNzkN+tLbI0DflY=";
   };
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "xmltodict" ];
+
   meta = with lib; {
     description = "Makes working with XML feel like you are working with JSON";
     homepage = "https://github.com/martinblech/xmltodict";
diff --git a/pkgs/development/python-modules/yamlordereddictloader/default.nix b/pkgs/development/python-modules/yamlordereddictloader/default.nix
index ce9602a4720..9de933fda15 100644
--- a/pkgs/development/python-modules/yamlordereddictloader/default.nix
+++ b/pkgs/development/python-modules/yamlordereddictloader/default.nix
@@ -1,8 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, ordereddict
 , pyyaml
 }:
 
@@ -15,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "03h8wa6pzqjiw25s3jv9gydn77gs444mf31lrgvpgy53kswz0c3z";
   };
 
-  propagatedBuildInputs = [ pyyaml ] ++ lib.optional (isPy27) ordereddict;
+  propagatedBuildInputs = [ pyyaml ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix
index 253962910ac..ba3ea107ea0 100644
--- a/pkgs/development/python-modules/zipp/default.nix
+++ b/pkgs/development/python-modules/zipp/default.nix
@@ -9,14 +9,14 @@
 
 let zipp = buildPythonPackage rec {
   pname = "zipp";
-  version = "3.7.0";
-  format = "setuptools";
+  version = "3.8.0";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d";
+    sha256 = "sha256-Vr+Krbg8JNtsS1d+E943TM+2faIHi+uh0DfBeYC/Q60=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python2-modules/botocore/default.nix b/pkgs/development/python2-modules/botocore/default.nix
index d05c2decf49..f23a10579c6 100644
--- a/pkgs/development/python2-modules/botocore/default.nix
+++ b/pkgs/development/python2-modules/botocore/default.nix
@@ -4,7 +4,6 @@
 , python-dateutil
 , jmespath
 , docutils
-, ordereddict
 , simplejson
 , mock
 , nose
@@ -24,7 +23,6 @@ buildPythonPackage rec {
     python-dateutil
     jmespath
     docutils
-    ordereddict
     simplejson
     urllib3
   ];
diff --git a/pkgs/development/tools/analysis/autoflake/default.nix b/pkgs/development/tools/analysis/autoflake/default.nix
index 03e01aadb71..adc861588dd 100644
--- a/pkgs/development/tools/analysis/autoflake/default.nix
+++ b/pkgs/development/tools/analysis/autoflake/default.nix
@@ -1,22 +1,36 @@
-{ lib, python3Packages }:
+{ lib
+, python3
+}:
 
-with python3Packages;
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "autoflake";
   version = "1.4";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "61a353012cff6ab94ca062823d1fb2f692c4acda51c76ff83a8d77915fba51ea";
+    hash = "sha256-YaNTASz/arlMoGKCPR+y9pLErNpRx2/4Oo13kV+6Ueo=";
   };
 
-  propagatedBuildInputs = [ pyflakes ];
+  propagatedBuildInputs = with python3.pkgs; [
+    pyflakes
+  ];
 
-  doCheck = true;
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "autoflake"
+  ];
+
+  disabledTests = [
+    # AssertionError: True is not false
+    "test_is_literal_or_name"
+  ];
 
   meta = with lib; {
+    description = "Tool to remove unused imports and unused variables";
     homepage = "https://github.com/myint/autoflake";
-    description = "A simple program which removes unused imports and unused variables as reported by pyflakes";
     license = licenses.mit;
     maintainers = with maintainers; [ yuriaisaka ];
   };
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 78e54028cc9..a72106ace3c 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -21,17 +21,6 @@ let newPython = python3.override {
         sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0";
       };
     });
-    # https://github.com/conan-io/conan/issues/8876
-    pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
-      version = "1.7.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
-      };
-      disabledTests = [
-        "test_ec_verify_should_return_false_if_signature_invalid"
-      ];
-    });
     distro = super.distro.overridePythonAttrs (oldAttrs: rec {
       version = "1.5.0";
       src = oldAttrs.src.override {
@@ -43,14 +32,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.47.0";
+  version = "1.49.0";
   pname = "conan";
 
   src = fetchFromGitHub {
     owner = "conan-io";
     repo = "conan";
     rev = version;
-    sha256 = "1zs2xb22rsy5fsc0fd7c95vrx1mfz7vasyg1lqkzyfimvn5zah6n";
+    hash = "sha256-BJGstNAnAZtpwagsCY+4quTd0/79zL+v4ifKikS3vaw=";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
diff --git a/pkgs/development/tools/jira_cli/default.nix b/pkgs/development/tools/jira_cli/default.nix
index cf15a61477e..9145f4a42cd 100644
--- a/pkgs/development/tools/jira_cli/default.nix
+++ b/pkgs/development/tools/jira_cli/default.nix
@@ -1,6 +1,6 @@
 { lib, libffi, openssl, python3Packages }:
 let
-  inherit (python3Packages) fetchPypi buildPythonApplication vcrpy mock hiro;
+  inherit (python3Packages) fetchPypi buildPythonApplication;
 in
   buildPythonApplication rec {
     pname = "jira-cli";
@@ -19,7 +19,7 @@ in
     checkInputs = with python3Packages; [ vcrpy mock hiro ];
     buildInputs = [ libffi openssl ];
     propagatedBuildInputs = with python3Packages; [
-      ordereddict requests six suds-jurko termcolor keyring
+      requests six suds-jurko termcolor keyring
       jira  keyrings-alt
     ];
 
diff --git a/pkgs/development/tools/pip-audit/default.nix b/pkgs/development/tools/pip-audit/default.nix
index 942d87c32e2..06d536c7433 100644
--- a/pkgs/development/tools/pip-audit/default.nix
+++ b/pkgs/development/tools/pip-audit/default.nix
@@ -43,6 +43,7 @@ buildPythonApplication rec {
     cachecontrol
     cyclonedx-python-lib
     html5lib
+    lockfile
     packaging
     pip-api
     progress
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 730cb31fd8e..555ed3a080d 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.23.0";
+  version = "0.24.2";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    hash = "sha256-yux5VpN8UqBscu5TyojlZmu4q2uz8b9Tu++eNlPUj/M=";
+    hash = "sha256-7nl2VHw4l0hUVLs4fAnmkVaxTFRe3OcUwHXMqf/cH40=";
   };
 
-  cargoSha256 = "sha256:1838dsmaqdlbd3j040bdy1fvl3z77xmcz73r11qmnqsga4yva6d7";
+  cargoSha256 = "sha256:0q99vy5k57phi80viqhkw8cyw7kglap1yf6m8n25n4knf7z9l119";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/misc/i3a/default.nix b/pkgs/misc/i3a/default.nix
index 36f58c16cc2..3171289bcac 100644
--- a/pkgs/misc/i3a/default.nix
+++ b/pkgs/misc/i3a/default.nix
@@ -9,9 +9,17 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-2k1HYtgJ76qXLvX6RmOSKtMMg+K722n8U9YmBANvQvE=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "python_requires='>=3.7,<3.10'," "python_requires='>=3.7',"
+  '';
+
   nativeBuildInputs = [ python3Packages.setuptools-scm ];
+
   propagatedBuildInputs = [ python3Packages.i3ipc ];
 
+  doCheck = false;
+
   meta = with lib; {
     homepage = "https://git.goral.net.pl/mgoral/i3a";
     description = "A set of scripts used for automation of i3 and sway window manager layouts";
diff --git a/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix b/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
index 6f666019c3b..214aa5dfad9 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
@@ -20,6 +20,12 @@ appleDerivation {
       --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \
       --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \
       --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' ""
+
+    # Workaround for https://github.com/NixOS/nixpkgs/issues/103172
+    # Prevents bsdmake from failing on systems that already had default limits
+    # increased.
+    substituteInPlace main.c \
+      --replace 'err(2, "setrlimit");' 'warn("setrlimit");'
   '';
 
   buildPhase = ''
diff --git a/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
index f2c4ec32146..18233cfc522 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
@@ -16,6 +16,10 @@ appleDerivation {
       --replace "/usr/bin/cpp" "$out/bin/clang-cpp"
   '';
 
+  # Workaround build failure on -fno-common toolchains:
+  #   duplicate symbol '_btype_2' in:args.o pr_comment.o
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   # temporary install phase until xcodebuild has "install" support
   installPhase = ''
     for f in Products/Release/*; do
diff --git a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
index a2f912ca578..ef766f7bd7f 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
@@ -3,6 +3,9 @@
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook ];
   buildInputs = [ apple_sdk.frameworks.IOKit ncurses libutil ];
+  # Workaround build failure on -fno-common toolchains:
+  #   duplicate symbol '_tsamp' in: main.o top.o
+  NIX_CFLAGS_COMPILE = "-fcommon";
   NIX_LDFLAGS = "-lutil";
   installPhase = ''
     install -D Products/Release/libtop.a $out/lib/libtop.a
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index f700bf035de..fe789d51dbb 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,24 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.347";
+  version = "0.360";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "19kmz25zq6qqs67ppqhws4mh3qf6zrp55cpyxyw36q95yjdcqp21";
+    sha256 = "sha256-dF1Yeb3xH4keQzcydZ3h3kyuSZ1knW/2YAJ8xvFSoMo=";
   };
 
-  preConfigure = "patchShebangs ./configure";
+  postPatch = ''
+    patchShebangs ./configure
+  '';
 
   configureFlags = [ "--datadir=${placeholder "out"}/share" ];
 
   doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus)
 
   outputHashMode = "recursive";
-  outputHashAlgo = "sha256";
-  outputHash = "0haaczd6pi9q2vdlvbwn7100sb87zsy64z94xhpbmlari4vzjmz0";
+  outputHash = "sha256-gkgnHy1XwP87qpQiAm31AIAkxgGm5JYxMBr60kvd+gE=";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index d4d438e78a0..d07c9073e6a 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -84,12 +84,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.17"; in
+  linuxHeaders = let version = "5.18"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "1cdi43x4c3l4chznh57gm55szycj4wjlxl1dss1ilnfvvmhyypsm";
+        sha256 = "1vjwhl4s8qxfg1aabn8xnpjza3qzrjcp5450h9qpjvl999lg3wsi";
       };
       patches = [
          ./no-relocs.patch # for building x86 kernel headers on non-ELF platforms
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index d8084bbfccc..471fb825180 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -920,6 +920,9 @@ let
       TASK_DELAY_ACCT = yes;
       TASK_XACCT = yes;
       TASK_IO_ACCOUNTING = yes;
+
+      # Fresh toolchains frequently break -Werror build for minor issues.
+      WERROR = whenAtLeast "5.15" no;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enable CPU/memory hotplug support
       # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index 20e0e8f1383..9e7a9cae173 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , nixosTests
 , python3
-, python3Packages
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -16,9 +15,10 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-KjmpFetNhNM5tL34e/Pn1i3hc86JZglubSMsHZWu198=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python3.pkgs; [
     advocate
     backports_abc
+    chardet
     flask-babel
     flask_login
     flask_principal
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index 87e7ce1281c..fbfa29ff4bf 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -29,7 +29,6 @@
 let
   defaultOverrides = [
     # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
-    (mkOverride "python-slugify" "4.0.1" "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=")
 
     # pytest-aiohttp>0.3.0 breaks home-assistant tests
     (self: super: {
@@ -101,6 +100,17 @@ let
       });
     })
 
+    (self: super: {
+      python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec {
+        pname = "python-slugify";
+        version = "4.0.1";
+        src = super.fetchPypi {
+          inherit pname version;
+          hash = "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=";
+        };
+      });
+    })
+
     # Pinned due to API changes in 0.4.0
     (self: super: {
       vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
@@ -200,6 +210,7 @@ in python.pkgs.buildPythonApplication rec {
       "attrs"
       "awesomeversion"
       "bcrypt"
+      "cryptography"
       "httpx"
       "PyJWT"
     ];
diff --git a/pkgs/stdenv/common-path.nix b/pkgs/stdenv/common-path.nix
index da468d56a2c..8c1acfb50dd 100644
--- a/pkgs/stdenv/common-path.nix
+++ b/pkgs/stdenv/common-path.nix
@@ -12,4 +12,12 @@
   pkgs.bash
   pkgs.patch
   pkgs.xz.bin
+
+  # The `file` command is added here because an enormous number of
+  # packages have a vendored dependency upon `file` in their
+  # `./configure` script, due to libtool<=2.4.6, or due to
+  # libtool>=2.4.7 in which the package author decided to set FILECMD
+  # when running libtoolize.  In fact, file-5.4.6 *depends on itself*
+  # and tries to invoke `file` from its own ./configure script.
+  pkgs.file
 ]
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 32e4fe9749a..bbc15bad262 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -486,6 +486,7 @@ rec {
           gmp
           libiconv
           brotli.lib
+          file
         ] ++ lib.optional haveKRB5 libkrb5) ++
         (with pkgs."${finalLlvmPackages}"; [
           libcxx
@@ -561,6 +562,7 @@ rec {
           gmp
           libiconv
           brotli.lib
+          file
         ] ++ lib.optional haveKRB5 libkrb5) ++
         (with pkgs."${finalLlvmPackages}"; [
           libcxx
@@ -737,6 +739,7 @@ rec {
         brotli.lib
         cc.expand-response-params
         libxml2.out
+        file
       ] ++ lib.optional haveKRB5 libkrb5
       ++ lib.optionals localSystem.isAarch64 [
         pkgs.updateAutotoolsGnuConfigScriptsHook
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 6d30e6c01ff..40ffd9344e3 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -1021,6 +1021,21 @@ configurePhase() {
             echo "fixing libtool script $i"
             fixLibtool "$i"
         done
+
+        # replace `/usr/bin/file` with `file` in any `configure`
+        # scripts with vendored libtool code.  Preserve mtimes to
+        # prevent some packages (e.g. libidn2) from spontaneously
+        # autoreconf'ing themselves
+        CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXX)
+        find . \
+          -executable \
+          -type f \
+          -name configure \
+          -execdir grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; \
+          -execdir touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; \
+          -execdir sed -i s_/usr/bin/file_file_g {} \;    \
+          -execdir touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;
+        rm -f "$CONFIGURE_MTIME_REFERENCE"
     fi
 
     if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 712d1b001c1..d625ab5b301 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -417,7 +417,7 @@ in
         # Simple executable tools
         concatMap (p: [ (getBin p) (getLib p) ]) [
             gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils
-            gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed
+            gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed file
           ]
         # Library dependencies
         ++ map getLib (
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index b4d1d6dd7b7..4237a5a412a 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.34.1";
+  version = "2.37.0";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,7 +9,7 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-BEEwxf3UTShKi3K/uBK1yMxyPCvybL/BbKsu8XAwu0M=";
+    sha256 = "sha256-Y1P+cTOK7NbV7k9rg38vE7EPuZQo88IQW3IYYou8ZOI=";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -27,12 +27,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     substituteInPlace setup.py \
       --replace "chardet~=3.0.4" "chardet" \
       --replace "javaproperties~=0.5.1" "javaproperties" \
-      --replace "pytz==2019.1" "pytz" \
-      --replace "scp~=0.13.2" "scp" \
-      --replace "PyNaCl~=1.4.0" "PyNaCl" \
-      --replace "jsondiff~=1.2.0" "jsondiff~=1.2" \
-      --replace "antlr4-python3-runtime~=4.7.2" "antlr4-python3-runtime~=4.7" \
-      --replace "mock~=4.0" "mock"
+      --replace "scp~=0.13.2" "scp"
 
     # remove namespace hacks
     # remove urllib3 because it was added as 'urllib3[secure]', which doesn't get handled well
@@ -50,6 +45,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-cli-core
     azure-cli-telemetry
     azure-cosmos
+    azure-data-tables
     azure-datalake-store
     azure-functions-devops-build
     azure-graphrbac
@@ -131,6 +127,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-synapse-artifacts
     azure-synapse-managedprivateendpoints
     azure-synapse-spark
+    chardet
     colorama
     cryptography
     distro
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index b65b4a8fbbb..bc0328cef1f 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -1,28 +1,17 @@
 { stdenv, python3, lib, src, version }:
 
 let
-  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage attrs;
+  buildAzureCliPackage = with py.pkgs; buildPythonPackage;
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
     # check to make sure overriding is even necessary
-    if version == package.version then
-      package
-    else package.overrideAttrs(oldAttrs: rec {
+    package.overrideAttrs(oldAttrs: rec {
       inherit version;
 
       src = py.pkgs.fetchPypi {
         inherit (oldAttrs) pname;
         inherit version sha256 extension;
       };
-
-      preBuild = ''
-        rm -f azure_bdist_wheel.py
-        substituteInPlace setup.cfg \
-          --replace "azure-namespace-package = azure-mgmt-nspkg" ""
-      '';
-
-      # force PEP420
-      pythonNamespaces = [ "azure.mgmt" ];
     });
 
   py = python3.override {
@@ -60,6 +49,7 @@ let
           pyjwt
           pyopenssl
           pyperclip
+          pysocks
           pyyaml
           requests
           six
@@ -72,7 +62,6 @@ let
             --replace "cryptography>=3.2,<3.4" "cryptography" \
             --replace "msal-extensions>=0.3.1,<0.4" "msal-extensions"
         '';
-
         checkInputs = with self; [ pytest ];
         doCheck = stdenv.isLinux;
         # ignore tests that does network call, or assume powershell
@@ -118,14 +107,18 @@ let
         '';
       };
 
+      antlr4-python3-runtime = super.antlr4-python3-runtime.override(_: {
+        antlr4 = super.pkgs.antlr4_9;
+      });
+
       azure-batch = overrideAzureMgmtPackage super.azure-batch "12.0.0" "zip"
         "sha256-GpseF4mEp79JWvZ7zOUfDbHkqKlXr7KeM1VKFKlnTes=";
 
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "3.0.0" "zip"
         "9262f54ed387eb083d8dae66d32a8df35647319b902bd498cdc376f50a12d154";
 
-      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "16.0.0" "zip"
-        "1b3cecd6f16813879c6ac1a1bb01f9a6f2752cd1f9157eb04d5e41e4a89f3c34";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "16.1.0" "zip"
+        "sha256-9J0VQ3uAsi4kuEe9UG4xpcEV1Sc+nkjECgVfzG7j5jk=";
 
       azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip"
         "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
@@ -136,8 +129,11 @@ let
       azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "0.3.0" "zip"
         "f8318878a66a0685a01bf27b7d1409c44eb90eb72b0a616c1a2455c72330f2f1";
 
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.0.0" "zip"
-        "75103fb4541aeae30bb687dee1fedd9ca65530e6b97b2d9ea87f74816905202a";
+      azure-mgmt-extendedlocation = overrideAzureMgmtPackage super.azure-mgmt-extendedlocation "1.0.0b2" "zip"
+        "sha256-mjfH35T81JQ97jVgElWmZ8P5MwXVxZQv/QJKNLS3T8A=";
+
+      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b2" "zip"
+        "sha256-e+I5MdbbX7WhxHCj1Ery3z2WUrJtpWGD1bhLbqReb58=";
 
       azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.0.0" "zip"
         "bdc479b3bbcac423943d63e746a81dd5fc80b46a4dbb4393e760016e3fa4f74a";
@@ -145,29 +141,29 @@ let
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.0.0" "zip"
         "sha256-p9MTfVxGD1CsLUQGHWCnC08nedTKhEt3QZtXJeZeCb4=";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "4.0.0" "zip"
-        "a848ac1d99c935e61dfb91ca3e1577904a3eff5820fce179eb6937df8e1019ec";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "5.0.0" "zip"
+        "sha256-BciA3sFyja5xo9yS3WVglC73y8gTfw8UejdEzbD4HYE=";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "20.0.0" "zip"
-        "622dca4484be64f9f5ce335d327dffabf3e71e14e8a3f4a1051dc85a5c3ebbca";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "21.1.0b1" "zip"
+        "sha256-oiC5k+Mg9KJn940jMxG4AB9Pom+t/DWRA5KRv8HO0HI=";
 
-      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "2.0.0" "zip"
-        "b58bbe82a7429ba589292024896b58d96fe9fa732c578569cac349928dc2ca5f";
+      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "2.1.0b2" "zip"
+        "sha256-/w+kI/tSNo0vW5ZFcMjRGPPrmNwZbFLKbKVkblZQ6FY=";
 
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.0.0" "zip"
-        "dc6116e8394d45312c7ad5a9098ce0dd2370bd92d43afd33d8b3bfab724fa498";
+      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.1.0" "zip"
+        "sha256-FXS834v5uDGiEGcQMIv9iaHxhfcW9uY3VmX7l91Tfj4=";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "25.0.0" "zip"
-        "sha256-Y0WNBtQ9v0yhTVFfTvfcudWHOjzGagGB+/b++3Ie5Kk=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "27.0.0" "zip"
+        "sha256-n+MQJ0ZeQ/hyS2G8CrNCtoxbvcfrIXmn4LXB/V6JXT0=";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
       azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.1.0" "zip"
-        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
+        "sha256-IhZLDFkTize8SLptR2v2NRUrxCjctCC1IaFLjCXHl60=";
 
-      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "17.0.0" "zip"
-        "sha256-oUbWdZryabCCg/gTujchT7p1nS7IDoU5W9MQ4ekJYH8=";
+      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "19.1.0" "zip"
+        "sha256-t06Cesxvjk31aDxkX2Yj0VzFubWbiAc26LzNTIgVEqs=";
 
       azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "7.0.0b2" "zip"
         "sha256-hVvYW9gkfTVMwis3IdD0JXYDxdKcyyzIFx3hNk7VMLI=";
@@ -190,8 +186,8 @@ let
       azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip"
         "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
 
-      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "9.0.0" "zip"
-        "64df73df449a6f3717f3d0963e5869224ed3e6216c79de571493bea7c1b52cb6";
+      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "10.0.0b1" "zip"
+        "sha256-1CiZuTXYhIb74eGQZUJHHzovYNnnVd3Ydu1UCy2Bu00=";
 
       azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
         "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
@@ -199,17 +195,17 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "6.0.1" "zip"
-        "6ce683587be1638d8d77620b7af118060b8b7dfc4fd23d46a623a66edcb388e1";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "7.0.0" "zip"
+        "sha256-ziaddG+6MoPG18OYZyQ9HRx8nfGsz2UbWPC1pWacKto=";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
         "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b2" "zip"
-        "sha256-j8CyWZGF7Z/5szJ+CD96E0EbNsceJ1SScrlPqWVLjnk=";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b4" "zip"
+        "sha256-Jm1t7v5vyFjNNM/evVaEI9sXJKNwJk6XAXuJSRSnKHk=";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.3.0" "zip"
-        "0b6a1ccdffd76e057ab16a6c319740a0ca68d59fedf7e9c02f2437396e72aa11";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "20.0.0" "zip"
+        "sha256-mnjPyCAJ+rlNgZ4umSYjfVVVg83EobZYY/zupyDjdoY=";
 
       azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip"
         "384e17f76a68b700a4f988478945c3a9721711c0400725afdfcb63cf84e85f0e";
@@ -223,21 +219,15 @@ let
       azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip"
         "68b381f52a4df4435dacad5a97e1c59ac4c981f667dcca8f9d04453417d60ad8";
 
-      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "7.0.0" "zip"
-        "sha256-tF6CpZTtkc1ap6XNXQHwOLesPPEiM+e6K+qqNHeQDo4=";
+      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "9.0.0" "zip"
+        "sha256-TI7l8sSQ2QUgPqiE3Cu/F67Wna+KHbQS3fuIjOb95ZM=";
 
       azure-mgmt-msi = super.azure-mgmt-msi.overridePythonAttrs (old: rec {
-        version = "0.2.0";
+        version = "6.0.1";
         src = old.src.override {
           inherit version;
-          sha256 = "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
+          sha256 = "sha256-PPkQmUoBkJ8Su7h9G2/t8dVy/PT3uCYZjlf70fnY2vU=";
         };
-        propagatedBuildInputs = with self; [
-          msrest
-          msrestazure
-          azure-common
-          azure-mgmt-nspkg
-        ];
       });
 
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
@@ -246,14 +236,14 @@ let
       azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "6.1.0" "zip"
         "c26635089276515b0488fcf014aab50a0446f54800c6e0e5583cc493ac8d738f";
 
-      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.0.0" "zip"
-        "94cd41f1ebd82e40620fd3e6d88f666b5c19ac7cf8b4e8edadb9721bd7c80980";
+      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.1.0" "zip"
+        "sha256-Tq8h3fvajxIG2QjtCyHCQDE2deBDioxLLaQQek/O24U=";
 
       azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "13.1.0" "zip"
         "ece913e5fc7f157e945809e557443f79ff7691cabca4bbc5ecb266352f843179";
 
-      azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
-        "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
+      azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "2.0.0" "zip"
+        "sha256-5vXdXiRubnzPk4uTFeNHR6rwiHSGbeUREX9eW1pqC3E=";
 
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "8.0.0" "zip"
         "a96d50c88507233a293e757202deead980c67808f432b8e897c4df1ca088da7e";
@@ -264,11 +254,11 @@ let
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "1.0.0b2" "zip"
         "sha256-FTxY8qoihHG4OZuKT3sRRlKfORbIoqDqug9Ko+6S9dw=";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "3.0.1" "zip"
-        "129042cc011225e27aee6ef2697d585fa5722e5d1aeb0038af6ad2451a285457";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b1" "zip"
+        "sha256-dYk3stvQHN/VEZS8OBCp0IbG8g6iIHpMrLxCWWg7Id8=";
 
-      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b1" "zip"
-        "sha256-SrFTvU+67U3CpMLPZMawXuRdSIbTsfav2jFZIsZWPmw=";
+      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b2" "zip"
+        "sha256-zqsLufjUmOl1Zxu8QhYzsEKYgoS+m8GTpRydl7jvXMk=";
 
       azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b2" "zip"
         "sha256-/BAxKDttp/tS/X45y8X4KBm5qxtNuVXhrc5qB3A+wRE=";
@@ -279,14 +269,14 @@ let
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
 
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "9.1.0" "zip"
-        "0ba9f10e1e8d03247a316e777d6f27fabf268d596dda2af56ac079fcdf5e7afe";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "10.0.0" "zip"
+        "0856574ef4b73bbbc62834051061e2081400aba7e3715e10ef5181d639e86a0b";
 
       azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.3.0" "zip"
         "54156422e618b686d52232a7989594b240bd18afd0fa381e12e4772ed4ab5ea8";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "11.0.0" "zip"
-        "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"
+        "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
 
       azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.2.0" "zip"
         "f2bcdbcf0b9fdc2df0df9eccb77cb489091d3c670ed53cba77e5ffd734e9539b";
@@ -303,8 +293,8 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "19.1.0" "zip"
-        "sha256-Seoi8A4JZaNVCvNKQcGh06SBaQ9lAMeOhUCIAvVtdBY=";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "20.0.0" "zip"
+        "sha256-buR2tWIv9vWVTt7m6w2N1CezIXAihVrfHshjPKBM3uI=";
 
       azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "7.1.0" "zip"
         "d8ae7905fb7d3e24822daa20aa7bc5014f41aa18b48ea2d0161e997fc11a3d36";
@@ -312,14 +302,14 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
 
-      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.0.0b1" "zip"
-        "sha256-T3DTvNmLpTm/74cOPEl+vcXv7TIAwmJ6YXGLqpqyGmE=";
+      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.0.0" "zip"
+        "sha256-lAjgwEa2TJDEUU8pwfwkU8EyA1bhLkcAv++I6WHb7Xs=";
 
       azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
         "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.7.0" "tar.gz"
-        "cd4f184be8c9ca8aca969f93ed50dc7fe556d28ca11520440fc182cf876abdf9";
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.9.0" "tar.gz"
+        "sha256-7uq8uRZ3MXI1Gy+DmMkRVNV7uZPw6j8r9KfhS8d+tCY=";
 
       azure-appconfiguration = super.azure-appconfiguration.overrideAttrs(oldAttrs: rec {
         version = "1.1.1";
@@ -362,11 +352,11 @@ let
       });
 
       azure-synapse-artifacts = super.azure-synapse-artifacts.overrideAttrs(oldAttrs: rec {
-        version = "0.10.0";
+        version = "0.12.0";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-P3gsm1kLiuQ2eMbgA9+MqMymdYMgOdJwsLdDf/AVV/0=";
+          sha256 = "sha256-IfQWsITuThzh+TRgv99JTtcDFY3gMq5PjALkN4mJEZo=";
           extension = "zip";
         };
       });
@@ -428,12 +418,12 @@ let
       });
 
       azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs(oldAttrs: rec {
-        version = "4.5.0b6";
+        version = "4.5.1";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
           extension = "zip";
-          sha256 = "sha256-WFSRJaia0+WnvGxoMYZIvf81ue51VPYXzTp8huUh1fc=";
+          sha256 = "sha256-2ojnH+ySoU+1jOyIaKv366BAGI3Nzjac4QUK3RllhvY=";
         };
       });
 
@@ -486,6 +476,16 @@ let
         doCheck = false;
       });
 
+      msal = super.msal.overridePythonAttrs(oldAttrs: rec {
+        version = "1.18.0b1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-kiYDjzX756uulLFr4gCuLnXgmAi+s2WDCGmvkQFC8Ow=";
+        };
+      });
+
       semver = super.semver.overridePythonAttrs(oldAttrs: rec {
         version = "2.13.0";
 
@@ -496,6 +496,15 @@ let
         };
       });
 
+      jsondiff = super.jsondiff.overridePythonAttrs(oldAttrs: rec {
+        version = "2.0.0";
+
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "sha256-J5WETvB17IorjThcTVn16kiwjnGA/OPLJ4e+DbALH7Q=";
+        };
+      });
+
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
         version = "0.9.0";
 
@@ -528,11 +537,11 @@ let
       });
 
       websocket-client = super.websocket-client.overridePythonAttrs(oldAttrs: rec {
-        version = "0.56.0";
+        version = "1.3.1";
 
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
+          sha256 = "sha256-YninUGU5VBgoP4h958O+r7OqaNraXKy+SyFOjSbaSZs=";
         };
       });
 
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 678835bf7bf..47a76c33c80 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -2,7 +2,7 @@
 , ensureNewerSourcesHook
 , cmake, pkg-config
 , which, git
-, boost
+, boost175
 , libxml2, zlib, lz4
 , openldap, lttng-ust
 , babeltrace, gperf
@@ -21,7 +21,7 @@
 , doxygen
 , graphviz
 , fmt
-, python3
+, python39
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -104,7 +104,13 @@ let
     meta = getMeta "Ceph common module for code shared by manager modules";
   };
 
-  python = python3;
+  # Boost 1.75 is not compatible with Python 3.10
+  python = python39;
+
+  boost = boost175.override {
+    enablePython = true;
+    inherit python;
+  };
 
   ceph-python-env = python.withPackages (ps: [
     ps.sphinx
diff --git a/pkgs/tools/filesystems/sftpman/default.nix b/pkgs/tools/filesystems/sftpman/default.nix
index e89012b76f6..267b2b649c3 100644
--- a/pkgs/tools/filesystems/sftpman/default.nix
+++ b/pkgs/tools/filesystems/sftpman/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sftpman";
-  version = "1.1.3";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "spantaleev";
     repo = pname;
     rev = version;
-    sha256 = "04awwwfw51fi1q18xdysp54jyhr0rhb4kfyrgv0vhhrlpwwyhnqy";
+    hash = "sha256-YxqN4+u0nYUWehbyRhjddIo2sythH3E0fiPSyrUlWhM=";
   };
 
   checkPhase = ''
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index bbbb180f6f6..9d046e7aff4 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -77,6 +77,9 @@ python3Packages.buildPythonApplication rec {
     # fails because it fails to determine llvm version
     "test_item3_deflate_llvm_bitcode"
 
+    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/pytest-of-nixbld/pytest-0/\xf0(\x8c('
+    "test_non_unicode_filename"
+
     # disable formatting tests because they can break on black updates
     "test_code_is_black_clean"
   ] ++ lib.optionals stdenv.isDarwin [
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 6454bb4eac2..9b982f2c2ea 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,5 +1,10 @@
 { lib, stdenv, fetchurl, file, zlib, libgnurx }:
 
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
 stdenv.mkDerivation rec {
   pname = "file";
   version = "5.41";
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index e976ca5fd69..d905c92438d 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -1,9 +1,21 @@
-{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
+{ lib
+, python39
+, fetchFromGitHub
+, fetchpatch
+}:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python39.override {
+    packageOverrides = self: super: {
+      ntfy-webpush = self.callPackage ./webpush.nix { };
+    };
+  };
+in python.pkgs.buildPythonApplication rec {
   pname = "ntfy";
   version = "2.7.0";
 
+  format = "setuptools";
+
   src = fetchFromGitHub {
     owner = "dschep";
     repo = "ntfy";
@@ -11,11 +23,11 @@ python3Packages.buildPythonApplication rec {
     sha256 = "09f02cn4i1l2aksb3azwfb70axqhn7d0d0vl2r6640hqr74nc1cv";
   };
 
-  checkInputs = with python3Packages; [
+  checkInputs = with python.pkgs; [
     mock
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python.pkgs; [
     requests ruamel-yaml appdirs
     sleekxmpp dnspython
     emoji
@@ -37,7 +49,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   checkPhase = ''
-    HOME=$(mktemp -d) ${python3Packages.python.interpreter} setup.py test
+    HOME=$(mktemp -d) ${python.interpreter} setup.py test
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/ntfy-webpush/default.nix b/pkgs/tools/misc/ntfy/webpush.nix
index 27559dabbdd..aad5bf48a40 100644
--- a/pkgs/tools/misc/ntfy-webpush/default.nix
+++ b/pkgs/tools/misc/ntfy/webpush.nix
@@ -1,6 +1,11 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pywebpush
+, py-vapid
+}:
 
-python3Packages.buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "ntfy-webpush";
   version = "0.1.3";
 
@@ -17,7 +22,7 @@ python3Packages.buildPythonPackage rec {
       --replace "'ntfy', " ""
   '';
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     pywebpush
     py-vapid
   ];
diff --git a/pkgs/tools/networking/cantoolz/default.nix b/pkgs/tools/networking/cantoolz/default.nix
index b31dc21b7a3..ca0d05131ca 100644
--- a/pkgs/tools/networking/cantoolz/default.nix
+++ b/pkgs/tools/networking/cantoolz/default.nix
@@ -17,6 +17,11 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     (fetchpatch {
+      # Import Iterable from collections.abc
+      url = "https://github.com/CANToolz/CANToolz/commit/9e818946716a744b3c7356f248e24ea650791d1f.patch";
+      hash = "sha256-BTQ0Io2RF8WpWlLoYfBj8IhL92FRR8ustGClt28/R8c=";
+    })
+    (fetchpatch {
       # Replace time.clock() which was removed, https://github.com/CANToolz/CANToolz/pull/30
       url = "https://github.com/CANToolz/CANToolz/pull/30/commits/d75574523d3b273c40fb714532c4de27f9e6dd3e.patch";
       sha256 = "0g91hywg5q6f2qk1awgklywigclrbhh6a6mwd0kpbkk1wawiiwbc";
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index bc4a920051a..7c892339fed 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -29,7 +29,6 @@ let
           };
         }
         );
-        six = changeVersion super.six.overridePythonAttrs "1.14.0" "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3";
         wcwidth = changeVersion super.wcwidth.overridePythonAttrs "0.1.9" "1wf5ycjx8s066rdvr0fgz4xds9a8zhs91c4jzxvvymm1c8l8cwzf";
         semantic-version = changeVersion super.semantic-version.overridePythonAttrs "2.8.5" "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54";
         pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
@@ -57,6 +56,11 @@ with localPython.pkgs; buildPythonApplication rec {
     sha256 = "sha256-W3nUXPAXoicDQNXigktR1+b/9W6qvi90fujrXAekxTU=";
   };
 
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace "six>=1.11.0,<1.15.0" "six"
+  '';
+
   buildInputs = [
     glibcLocales
   ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d2faace053e..fbdd3e31d99 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4613,7 +4613,6 @@ with pkgs;
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost175.override { enablePython = true; python = python3; };
     lua = lua5_4;
   })
     ceph
@@ -14492,11 +14491,11 @@ with pkgs;
   # available as `pythonPackages.tkinter` and can be used as any other Python package.
   # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md
   python2 = python27;
-  python3 = python39;
+  python3 = python310;
 
   # pythonPackages further below, but assigned here because they need to be in sync
   python2Packages = dontRecurseIntoAttrs python27Packages;
-  python3Packages = dontRecurseIntoAttrs python39Packages;
+  python3Packages = dontRecurseIntoAttrs python310Packages;
 
   pypy = pypy2;
   pypy2 = pypy27;
@@ -14538,6 +14537,12 @@ with pkgs;
     bluezSupport = true;
     x11Support = true;
   };
+  python310Full = python310.override {
+    self = python310Full;
+    pythonAttr = "python310Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
 
   pythonInterpreters = callPackage ./../development/interpreters/python { };
   inherit (pythonInterpreters) python27 python37 python38 python39 python310 python311 python3Minimal pypy27 pypy38 pypy37 rustpython;
@@ -16798,7 +16803,7 @@ with pkgs;
 
   boost15x = boost159;
   boost16x = boost169;
-  boost17x = boost177;
+  boost17x = boost179;
   boost = boost17x;
 
   boost_process = callPackage ../development/libraries/boost-process { };
@@ -26143,7 +26148,7 @@ with pkgs;
 
   eq10q = callPackage ../applications/audio/eq10q { };
 
-  errbot = python3Packages.callPackage ../applications/networking/errbot { };
+  errbot = callPackage ../applications/networking/errbot { };
 
   espeak-classic = callPackage ../applications/audio/espeak { };
 
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index c84d0739d31..0a52e19886d 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -84,6 +84,7 @@ mapAliases ({
   hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
   hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
   IMAPClient = imapclient; # added 2021-10-28
+  ipaddress = throw "ipaddress has been removed because it is no longer required since python 2.7."; # added 2022-05-30
   jupyter_client = jupyter-client; # added 2021-10-15
   Keras = keras; # added 2021-11-25
   lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
@@ -96,6 +97,7 @@ mapAliases ({
   mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
   net2grid = gridnet; # add 2022-04-22
   nose-cover3 = throw "nose-cover3 has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-02-16
+  ordereddict = throw "ordereddict has been removed because it is only useful on unsupported python versions."; # added 2022-05-28
   pam = python-pam; # added 2020-09-07.
   PasteDeploy = pastedeploy; # added 2021-10-07
   pathpy = path; # added 2022-04-12
@@ -111,6 +113,7 @@ mapAliases ({
   pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01
   pyGtkGlade = throw "Glade support for pygtk has been removed"; # added 2022-01-15
   pycallgraph = throw "pycallgraph has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  pycryptodome-test-vectors = throw "pycryptodome-test-vectors has been removed because it is an internal package to pycryptodome"; # added 2022-05-28
   pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
   pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
   pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 47d7a2f9d0c..f061aa2ef72 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -889,6 +889,8 @@ in {
 
   azure-cosmosdb-table = callPackage ../development/python-modules/azure-cosmosdb-table { };
 
+  azure-data-tables = callPackage ../development/python-modules/azure-data-tables { };
+
   azure-datalake-store = callPackage ../development/python-modules/azure-datalake-store { };
 
   azure-eventgrid = callPackage ../development/python-modules/azure-eventgrid { };
@@ -4319,8 +4321,6 @@ in {
 
   ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  ipaddress = callPackage ../development/python-modules/ipaddress { };
-
   ipdb = callPackage ../development/python-modules/ipdb { };
 
   ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
@@ -4821,7 +4821,6 @@ in {
 
   ledger = (toPythonModule (pkgs.ledger.override {
     usePython = true;
-    boost = pkgs.boost179; # Current default boost (1.77) doesn’t work with Python 3.10.
     python3 = python;
   })).py;
 
@@ -5300,6 +5299,8 @@ in {
 
   md-toc = callPackage ../development/python-modules/md-toc { };
 
+  mdx-truly-sane-lists = callPackage ../development/python-modules/mdx-truly-sane-lists { };
+
   md2gemini = callPackage ../development/python-modules/md2gemini { };
 
   mdformat = callPackage ../development/python-modules/mdformat { };
@@ -5433,6 +5434,7 @@ in {
 
   mkdocs = callPackage ../development/python-modules/mkdocs { };
   mkdocs-drawio-exporter = callPackage ../development/python-modules/mkdocs-drawio-exporter { };
+  mkdocs-exclude = callPackage ../development/python-modules/mkdocs-exclude { };
   mkdocs-macros = callPackage ../development/python-modules/mkdocs-macros { };
   mkdocs-material = callPackage ../development/python-modules/mkdocs-material { };
   mkdocs-material-extensions = callPackage ../development/python-modules/mkdocs-material/mkdocs-material-extensions.nix { };
@@ -5925,8 +5927,6 @@ in {
 
   nsapi = callPackage ../development/python-modules/nsapi { };
 
-  ntfy-webpush = callPackage ../tools/misc/ntfy-webpush { };
-
   ntc-templates = callPackage ../development/python-modules/ntc-templates { };
 
   ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
@@ -6133,8 +6133,6 @@ in {
 
   opuslib = callPackage ../development/python-modules/opuslib { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
-
   orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
   ordered-set = callPackage ../development/python-modules/ordered-set { };
@@ -6922,7 +6920,9 @@ in {
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  psutil = callPackage ../development/python-modules/psutil {
+    inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
+  };
 
   psycopg2 = callPackage ../development/python-modules/psycopg2 { };
 
@@ -7192,8 +7192,6 @@ in {
 
   pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  pycryptodome-test-vectors = callPackage ../development/python-modules/pycryptodome-test-vectors { };
-
   pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
   pyct = callPackage ../development/python-modules/pyct { };
@@ -10640,6 +10638,8 @@ in {
 
   trio-asyncio = callPackage ../development/python-modules/trio-asyncio { };
 
+  trio-websocket = callPackage ../development/python-modules/trio-websocket { };
+
   trueskill = callPackage ../development/python-modules/trueskill { };
 
   trustme = callPackage ../development/python-modules/trustme { };