Subject: [bug#70855] [PATCH 92/92] build-system/pyproject: Add missing native-inputs.

From: Nicolas Graves <[email-masked]>
Date: Fri, 10 May 2024 00:54:27 +0200

* gnu/packages/astronomy.scm (python-drms, python-spherical-geometry,
python-asdf-coordinates-schemacs, python-asdf-wcs-schemas, python-rad)
[native-inputs]: Add python-setuptools and python-wheel.
(python-casa-formats-io, python-tweakwcs)[native-inputs]: Add
python-setuptools.

* gnu/packages/bioinformatics.scm (python-ega-download-client)
[native-inputs]: Add python-setuptools and python-wheel.

* gnu/packages/databases.scm (datasette)[native-inputs]: Add
python-pip.

* gnu/packages/django.scm (python-django-localflavor,
python-django-contact-form)[native-inputs]: Add python-setuptools and
python-wheel.

* gnu/packages/graphviz.scm (python-uqbar)[native-inputs]: Add
python-setuptools and python-wheel.

* gnu/packages/jupyter.scm (python-jupyterlab-server)[native-inputs]:
Add python-wheel.
(python-nbstripout)[native-inputs]: Add python-setuptools and
python-wheel.

* gnu/packages/machine-learning.scm (python-captum,
python-linear-operator, python-gpytorch)[native-inputs]: Add
python-setuptools.

* gnu/packages/music.scm (abjad, abjad-ext-rmarkers,
abjed-ext-nauert, python-mutagen)[native-inputs]: Add
python-setuptools and python-wheel.

* gnu/packages/package-management.scm
(python-conda-package-handling)[native-inputs]: Add python-setuptools
and python-wheel.
(conda)[native-inputs]: Add python-wheel.

* gnu/packages/python-check.scm (python-pyinstrument,
python-pytest-testmon, python-pytest-trio, python-nbval,
python-pytest-toolbox)[native-inputs]: Add python-setuptools and
python-wheel.
(python-nptyping)[native-inputs]: Add python-setuptools.

* gnu/packages/python-check.scm (python-dask-expr)[native-inputs]:
Add python-setuptools and python-wheel.

* gnu/packages/python-web.scm (parfive, python-aioftp, python-hupper,
python-sanic, python-mechanicalsoup, python-tinycss, python-aiostream,
python-cbor2, gunicorn)[native-inputs]: Add python-setuptools and
python-wheel.

* gnu/packages/python-xyz.scm (python-apprise, python-jaraco-classes,
python-sparse, python-shtab, python-pyan3)[native-inputs]: Add
python-setuptools.
(python-jupytext, python-orderedmultidict, python-ukkonen,
python-identify, python-nodeenv, python-cfgv, python-zarr,
python-multipart, python-nbconvert, python-cram, python-immutables,
python-numpydoc, python-cairosvg, python-unidecode, python-black,
python-multidict, python-mpv-jsonipc, python-humanize,
python-cmd2)[native-inputs]: Add python-setuptools and python-wheel.
(python-partd, python-dask, python-zarr)[native-inputs]: Add
python-wheel.
(python-nbconvert)[propagated-inputs]: Add texlive-etoolbox. Remove
duplicate textlive-jknapltx.
(python-isort)[native-inputs]: Add python-pip.

* gnu/packages/simulation.scm (python-fenics-dijitso)[native-inputs]:
Add python-setuptools and python-wheel.

* gnu/packages/sphinx.scm (python-pydata-sphinx-theme,
python-sphinx-autodoc-typehints)[native-inputs]: Add
python-setuptools.

* gnu/packages/syndication.scm (tuir)[native-inputs]: Add
python-setuptools and python-wheel.

* gnu/packages/terminals.scm (python-halo)[native-inputs]: Add
python-setuptools and python-wheel.

* gnu/packages/time.scm (python-arrow, python-dateutil)
[native-inputs]: Add python-setuptools and python-wheel.

* gnu/packages/version-control.scm (pre-commit)[native-inputs]: Add
python-setuptools and python-wheel.

* gnu/packages/virtualization.scm (python-qemu-qmp,
python-transient)[native-inputs]: Add python-setuptools and
python-wheel.

* gnu/packages/xorg.scm (python-xcffib)[native-inputs]: Add
python-setuptools and python-wheel.

Change-Id: Id61cf8cdc47bd4c2871c0a9c8e9a5bfd51157df0
---
 gnu/packages/astronomy.scm          | 25 +++++++----
 gnu/packages/bioinformatics.scm     |  9 +++-
 gnu/packages/databases.scm          |  1 +
 gnu/packages/django.scm             |  2 +
 gnu/packages/graphviz.scm           |  4 +-
 gnu/packages/jupyter.scm            |  7 +++-
 gnu/packages/machine-learning.scm   |  4 +-
 gnu/packages/music.scm              | 10 ++---
 gnu/packages/package-management.scm | 12 ++++--
 gnu/packages/python-check.scm       | 17 +++++---
 gnu/packages/python-science.scm     |  4 +-
 gnu/packages/python-web.scm         | 46 +++++++++++++++------
 gnu/packages/python-xyz.scm         | 64 +++++++++++++++++++----------
 gnu/packages/simulation.scm         |  2 +-
 gnu/packages/sphinx.scm             |  4 +-
 gnu/packages/syndication.scm        |  4 +-
 gnu/packages/terminals.scm          |  2 +-
 gnu/packages/time.scm               | 10 +++--
 gnu/packages/version-control.scm    |  2 +
 gnu/packages/virtualization.scm     |  9 ++--
 gnu/packages/xorg.scm               |  4 +-
 21 files changed, 169 insertions(+), 73 deletions(-)

diff --git a/gnu/packages/astronomy.scm b/gnu/packages/astronomy.scm
index de5193d9b83..32c6f30e8f6 100644
--- a/gnu/packages/astronomy.scm
+++ b/gnu/packages/astronomy.scm
@@ -2041,7 +2041,8 @@ (define-public python-casa-formats-io
             (lambda _
               (invoke "python" "setup.py" "build_ext" "--inplace"))))))
     (native-inputs
-     (list python-pytest python-pytest-cov python-pytest-openfiles))
+     (list python-pytest python-pytest-cov python-pytest-openfiles
+           python-setuptools))
     (propagated-inputs
      (list python-astropy python-click python-dask python-numpy))
     (home-page "https://casa-formats-io.readthedocs.io/")
@@ -2254,9 +2255,11 @@ (define-public python-drms
     (build-system pyproject-build-system)
     (native-inputs
      (list python-astropy
-           python-pytest-astropy
            python-pytest
-           python-setuptools-scm))
+           python-pytest-astropy
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (propagated-inputs (list python-numpy python-pandas))
     (home-page "https://sunpy.org")
     (synopsis "Access astronomical HMI, AIA and MDI data with Python")
@@ -3230,7 +3233,9 @@ (define-public python-spherical-geometry
     (native-inputs
      (list python-pytest
            python-pytest-astropy-header
-           python-setuptools-scm))
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (inputs
      (list qd))
     (propagated-inputs
@@ -4607,6 +4612,7 @@ (define-public python-tweakwcs
            python-pytest
            python-pytest-cov
            python-scipy
+           python-setuptools
            python-setuptools-scm))
     (home-page "https://tweakwcs.readthedocs.io/en/latest/")
     (synopsis
@@ -4800,7 +4806,9 @@ (define python-asdf-coordinates-schemas
     (native-inputs
      (list python-pytest
            python-pytest-xdist
-           python-setuptools-scm))
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (propagated-inputs
      (list python-asdf))
     (home-page "https://github.com/asdf-format/asdf-coordinates-schemas")
@@ -4986,7 +4994,9 @@ (define python-asdf-wcs-schemas
      (list python-asdf
            python-pytest
            python-pytest-openfiles
-           python-setuptools-scm))
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (propagated-inputs
      (list python-asdf-coordinates-schemas
            python-asdf-standard
@@ -5053,7 +5063,8 @@ (define-public python-rad
       ;; python-rad -> python-roman-datamodels -> python-crds -> python-rad
       #:test-flags #~(list "--ignore=tests/test_schemas.py")))
     (native-inputs
-     (list python-pytest python-setuptools-scm))
+     (list python-pytest python-setuptools
+           python-setuptools-scm python-wheel))
     (propagated-inputs (list python-asdf python-asdf-astropy))
     (home-page "https://github.com/spacetelescope/rad")
     (synopsis "Roman Attribute Dictionary")
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 47cca108658..a611caf715a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -2771,8 +2771,13 @@ (define-public python-ega-download-client
                (("==") ">=")))))))
     (propagated-inputs (list python-htsget python-psutil python-requests
                              python-tqdm python-urllib3))
-    (native-inputs (list python-coverage python-pytest python-pyfakefs
-                         python-responses python-mock))
+    (native-inputs (list python-coverage
+                         python-mock
+                         python-pyfakefs
+                         python-pytest
+                         python-responses
+                         python-setuptools
+                         python-wheel))
     (home-page "https://github.com/EGA-archive/ega-download-client")
     (synopsis "EGA download client")
     (description "PyEGA3 is a tool for viewing and downloading files from
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index a3a550c40c3..67e6ced7c32 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -5571,6 +5571,7 @@ (define-public datasette
      (list python-beautifulsoup4
            python-black
            python-cogapp
+           python-pip
            python-pytest
            python-pytest-asyncio
            python-pytest-runner
diff --git a/gnu/packages/django.scm b/gnu/packages/django.scm
index 21099f0ff0f..4a271eaf0b5 100644
--- a/gnu/packages/django.scm
+++ b/gnu/packages/django.scm
@@ -294,6 +294,8 @@ (define-public python-django-localflavor
               (if tests?
                   (apply invoke "python" "-m" "django" "test" test-flags)
                   (format #t "test suite not run~%")))))))
+    (native-inputs
+     (list python-setuptools python-wheel))
     (propagated-inputs
      (list python-django python-stdnum))
     (home-page "https://django-localflavor.readthedocs.io/en/latest/")
diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm
index 2c23b6abd5c..db40b99928a 100644
--- a/gnu/packages/graphviz.scm
+++ b/gnu/packages/graphviz.scm
@@ -221,7 +221,9 @@ (define-public python-uqbar
            python-isort
            python-mypy
            python-pytest
-           python-pytest-cov))
+           python-pytest-cov
+           python-setuptools
+           python-wheel))
     (propagated-inputs
      (list python-black python-sphinx-5 python-unidecode
            (package/inherit python-sphinx-rtd-theme
diff --git a/gnu/packages/jupyter.scm b/gnu/packages/jupyter.scm
index cf3fa509966..e2bef079ba0 100644
--- a/gnu/packages/jupyter.scm
+++ b/gnu/packages/jupyter.scm
@@ -409,7 +409,8 @@ (define-public python-jupyterlab-server
            python-requests-mock
            python-ruamel.yaml
            python-strict-rfc3339
-           python-werkzeug))
+           python-werkzeug
+           python-wheel))
     (home-page "https://jupyter.org")
     (synopsis "Server components for JupyterLab applications")
     (description "JupyterLab Server sits between JupyterLab and Jupyter
@@ -819,7 +820,9 @@ (define-public python-nbstripout
      (list python-pytest
            python-pytest-cram
            python-pytest-flake8
-           python-pytest-runner))
+           python-pytest-runner
+           python-setuptools
+           python-wheel))
     (home-page "https://github.com/kynan/nbstripout")
     (synopsis "Strips outputs from Jupyter and IPython notebooks")
     (description
diff --git a/gnu/packages/machine-learning.scm b/gnu/packages/machine-learning.scm
index 21d58d9aae9..ba6f51b3f11 100644
--- a/gnu/packages/machine-learning.scm
+++ b/gnu/packages/machine-learning.scm
@@ -4535,7 +4535,7 @@ (define-public python-captum
                          python-parameterized
                          python-pytest
                          python-pytest-cov
-                         python-scikit-learn))
+                         python-setuptools))
     (home-page "https://captum.ai")
     (synopsis "Model interpretability for PyTorch")
     (description "Captum is a model interpretability and understanding library
@@ -5114,6 +5114,7 @@ (define-public python-linear-operator
     (native-inputs (list python-flake8
                          python-flake8-print
                          python-pytest
+                         python-setuptools
                          python-setuptools-scm
                          python-twine))
     (home-page "https://github.com/cornellius-gp/linear_operator/")
@@ -5146,6 +5147,7 @@ (define-public python-gpytorch
                          python-flake8-print
                          python-nbval
                          python-pytest
+                         python-setuptools
                          python-twine))
     (home-page "https://gpytorch.ai")
     (synopsis "Implementation of Gaussian Processes in PyTorch")
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index 37fe94b56de..6b765dcb3d6 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -1698,7 +1698,7 @@ (define-public abjad
     (inputs
      (list lilypond))
     (native-inputs
-     (list python-pytest))
+     (list python-pytest python-setuptools python-wheel))
     (propagated-inputs
      (list python-quicktions
            python-ply
@@ -1730,7 +1730,7 @@ (define-public abjad-ext-rmakers
         (base32 "1y8s55b4mlsigm0xkk6qjpp08c75rv0swvjp0lj3cs6lgqdjxdjl"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list lilypond python-pytest))
+     (list lilypond python-pytest python-setuptools python-wheel))
     (propagated-inputs
      (list abjad))
     (home-page "https://abjad.github.io")
@@ -1755,7 +1755,7 @@ (define-public abjad-ext-nauert
         (base32 "0j4pf4h27jm3df0dn2rwkdx6zqcxvr7pqchbaa9rffz7q4hbakmf"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list lilypond python-pytest))
+     (list lilypond python-pytest python-setuptools python-wheel))
     (propagated-inputs
      (list abjad))
     (home-page "https://abjad.github.io")
@@ -3978,8 +3978,8 @@ (define-public python-mutagen
                  (("( +)@given" all spaces)
                   (string-append spaces "@settings(deadline=None)\n" all))))))))
     (native-inputs
-     (list python-pytest python-hypothesis python-flake8))
-    (home-page "https://mutagen.readthedocs.io/")
+     (list python-pytest python-hypothesis python-flake8
+           python-setuptools python-wheel))
     (synopsis "Read and write audio tags")
     (description "Mutagen is a Python module to handle audio metadata.  It
 supports ASF, FLAC, M4A, Monkey’s Audio, MP3, Musepack, Ogg FLAC, Ogg Speex, Ogg
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 949c42e274b..feed16ebcef 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1143,8 +1143,13 @@ (define-public python-conda-package-handling
     (inputs
      (list libarchive))
     (native-inputs
-     (list python-cython python-pytest python-pytest-cov
-           python-pytest-mock python-mock))
+     (list python-cython
+           python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-mock
+           python-setuptools
+           python-wheel))
     (home-page "https://conda.io")
     (synopsis "Create and extract conda packages of various formats")
     (description
@@ -1284,7 +1289,8 @@ (define-public conda
      (list python-coverage
            python-flaky
            python-pytest-timeout
-           python-pytest-xprocess))
+           python-pytest-xprocess
+           python-wheel))
     (home-page "https://github.com/conda/conda")
     (synopsis "Cross-platform, OS-agnostic, system-level binary package manager")
     (description
diff --git a/gnu/packages/python-check.scm b/gnu/packages/python-check.scm
index 46c8b3414e4..5571cee2088 100644
--- a/gnu/packages/python-check.scm
+++ b/gnu/packages/python-check.scm
@@ -377,7 +377,9 @@ (define-public python-pyinstrument
            python-greenlet
            python-pytest
            python-pytest-asyncio
-           python-pytest-trio))
+           python-pytest-trio
+           python-setuptools
+           python-wheel))
     (home-page "https://github.com/joerick/pyinstrument")
     (synopsis "Call stack profiler for Python")
     (description
@@ -1169,7 +1171,8 @@ (define-public python-pytest-testmon
         (base32 "01qhbkb3n8c5c4id94w6b06q9wb7b6a33mqwyrkdfzk5pzv1gcyd"))))
     (build-system pyproject-build-system)
     (arguments (list #:tests? #false)) ;there are none
-    (native-inputs (list python-coverage python-pytest))
+    (native-inputs (list python-coverage python-pytest
+                         python-setuptools python-wheel))
     (home-page "https://github.com/tarpas/pytest-testmon")
     (synopsis "Selects tests affected by changed files and methods")
     (description
@@ -1198,7 +1201,8 @@ (define-public python-pytest-trio
                            ;; No keyboard interrupt in our build environment.
                            " and not test_actual_test"))))
     (native-inputs
-     (list python-hypothesis python-pytest python-pytest-cov))
+     (list python-hypothesis python-pytest python-pytest-cov
+           python-setuptools python-wheel))
     (propagated-inputs
       (list python-async-generator python-outcome python-pytest python-trio))
     (home-page "https://github.com/python-trio/pytest-trio")
@@ -1487,7 +1491,8 @@ (define-public python-pytest-toolbox
                 (substitute* "setup.cfg"
                   ((".*timeout.*") ""))))))))
     (native-inputs
-     (list python-pydantic python-pytest python-pytest-isort))
+     (list python-pydantic python-pytest python-pytest-isort
+           python-setuptools python-wheel))
     (home-page "https://github.com/samuelcolvin/pytest-toolbox")
     (synopsis "Numerous useful plugins for Pytest")
     (description
@@ -1585,7 +1590,8 @@ (define-public python-nbval
               (delete-file "tests/\
 ipynb-test-samples/test-latex-pass-correctouput.ipynb"))))))
     (native-inputs
-     (list python-pytest python-pytest-cov python-sympy))
+     (list python-pytest python-pytest-cov python-setuptools python-sympy
+           python-wheel))
     (propagated-inputs
      (list python-ipykernel python-jupyter-client python-nbformat
            python-six python-coverage))
@@ -2062,6 +2068,7 @@ (define-public python-nptyping
     (native-inputs
      (list python-beartype
            python-mypy
+           python-setuptools
            python-typeguard
            python-wheel))
     (propagated-inputs (list python-numpy python-typing-extensions))
diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm
index dd4cffea8e1..f82feab0963 100644
--- a/gnu/packages/python-science.scm
+++ b/gnu/packages/python-science.scm
@@ -2157,7 +2157,9 @@ (define-public python-dask-expr
      ;; package without creating a mutually recursive dependency.
      (list python-dask/bootstrap
            python-pytest
-           python-versioneer))
+           python-setuptools
+           python-versioneer
+           python-wheel))
     (home-page "https://github.com/dask/dask-expr")
     (synopsis "Dask DataFrames with query optimization")
     (description "This is a rewrite of Dask DataFrame that includes query
diff --git a/gnu/packages/python-web.scm b/gnu/packages/python-web.scm
index 05413fd2e7e..61ea8a63558 100644
--- a/gnu/packages/python-web.scm
+++ b/gnu/packages/python-web.scm
@@ -684,10 +684,12 @@ (define-public python-aiostream
                 "0l2ijb7yk0820wiyf6zrzx8fhzf8925an7r06mcaw3in1mr6rssq"))))
     (build-system python-build-system)
     (native-inputs
-     (list python-pytest
+     (list python-setuptools
+           python-pytest
            python-pytest-asyncio
            python-pytest-cov
-           python-pytest-runner))
+           python-pytest-runner
+           python-wheel))
     (home-page "https://github.com/vxgmichel/aiostream")
     (synopsis "Generator-based operators for asynchronous iteration")
     (description "@code{aiostream} provides a collection of stream operators that can
@@ -1001,7 +1003,11 @@ (define-public python-cbor2
        (sha256
         (base32 "15y78xcc3zkmvj1mdzz8gyhf3apbl91073kwhzbjk5abc1civwlw"))))
     (build-system pyproject-build-system)
-    (native-inputs (list python-pytest python-pytest-cov python-setuptools-scm))
+    (native-inputs (list python-pytest
+                         python-pytest-cov
+                         python-setuptools
+                         python-setuptools-scm
+                         python-wheel))
     (home-page "https://github.com/agronholm/cbor2")
     (synopsis "Concise Binary Object Representation (CBOR) (de)serializer")
     (description "This Python library provides encoding and decoding for the
@@ -1407,7 +1413,9 @@ (define-public parfive
                          python-pytest-cov
                          python-pytest-localserver
                          python-pytest-socket
-                         python-setuptools-scm))
+                         python-setuptools
+                         python-setuptools-scm
+                         python-wheel))
     (home-page "https://parfive.readthedocs.io/")
     (synopsis "HTTP and FTP parallel file downloader")
     (description
@@ -1594,7 +1602,9 @@ (define-public python-mechanicalsoup
            python-pytest-httpbin
            python-pytest-mock
            python-pytest-runner
-           python-requests-mock))
+           python-requests-mock
+           python-setuptools
+           python-wheel))
     (home-page "https://mechanicalsoup.readthedocs.io/")
     (synopsis "Python library for automating website interaction")
     (description
@@ -3813,9 +3823,13 @@ (define-public python-aioftp
                (base32
                 "0w621mg956m9rn7v39jpwi4gpnpl90pprwl29cp640dahqqv38ms"))))
     (build-system pyproject-build-system)
-    (native-inputs (list python-async-timeout python-pytest
-                         python-pytest-asyncio python-pytest-cov
-                         python-trustme))
+    (native-inputs (list python-async-timeout
+                         python-pytest
+                         python-pytest-asyncio
+                         python-pytest-cov
+                         python-setuptools
+                         python-trustme
+                         python-wheel))
     (propagated-inputs (list python-siosocks))
     (home-page "https://aioftp.readthedocs.io/")
     (synopsis "FTP client/server for asyncio in Python")
@@ -5874,7 +5888,7 @@ (define-public python-tinycss
            '(list "-k" "not test_speedups")))
     (native-inputs
      (list python-pytest-cov python-pytest-flake8 python-pytest-isort
-           python-pytest-runner))
+           python-pytest-runner python-setuptools python-wheel))
     (home-page "https://tinycss.readthedocs.io/")
     (synopsis "Complete yet simple CSS parser for Python")
     (description
@@ -6074,6 +6088,7 @@ (define-public gunicorn
            python-pytest-cov
            python-sphinx
            texinfo))
+    (propagated-inputs (list python-packaging python-setuptools python-wheel))
     (home-page "https://gunicorn.org/")
     (synopsis "Python WSGI HTTP Server for UNIX")
     (description "Gunicorn ‘Green Unicorn’ is a Python WSGI HTTP
@@ -6866,8 +6881,13 @@ (define-public python-hupper
     (build-system python-build-system)
     (arguments '(#:test-target "pytest"))
     (native-inputs
-     (list python-pytest python-pytest-runner python-watchdog python-mock
-           python-pytest-cov))
+     (list python-mock
+           python-pytest
+           python-pytest-cov
+           python-pytest-runner
+           python-setuptools
+           python-watchdog
+           python-wheel))
     (propagated-inputs
      (list python-pytz))
     (home-page "https://readthedocs.org/projects/hupper")
@@ -7618,11 +7638,13 @@ (define-public python-sanic
            python-pytest-benchmark
            python-pytest-sanic
            python-sanic-testing
+           python-setuptools
            python-slotscheck
            python-towncrier
            python-tox
            python-types-ujson
-           python-uvicorn))
+           python-uvicorn
+           python-wheel))
     (home-page "https://github.com/sanic-org/sanic/")
     (synopsis "Async Python web server/framework")
     (description
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 614ff9b23c3..3f86ea8224b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -326,6 +326,7 @@ (define-public python-apprise
                          python-pytest-cov
                          python-pytest-mock
                          python-pytest-xdist
+                         python-setuptools
                          python-wheel))
     (arguments
      (list
@@ -483,8 +484,10 @@ (define-public python-jupytext
            python-isort
            python-ipython-genutils
            python-jupyter-server
+           python-pyaml
            python-pytest
-           python-pyaml))
+           python-setuptools
+           python-wheel))
     (propagated-inputs
      (list python-markdown-it-py
            python-mdit-py-plugins
@@ -5957,6 +5960,7 @@ (define-public python-unidecode
               (base32
                "1x620s4dk4d501pivhlfzbi2d1r5fnm9cssqwkn76f7d8sfk9nyg"))))
     (build-system pyproject-build-system)
+    (native-inputs (list python-setuptools python-wheel))
     (home-page "https://pypi.org/project/Unidecode/")
     (synopsis "ASCII transliterations of Unicode text")
     (description
@@ -8260,7 +8264,8 @@ (define-public python-black
            python-typed-ast
            python-typing-extensions))
     (native-inputs
-     (list python-pytest python-pytest-aiohttp python-setuptools-scm))
+     (list python-pytest python-pytest-aiohttp python-setuptools
+           python-setuptools-scm python-wheel))
     (home-page "https://github.com/psf/black")
     (synopsis "The uncompromising code formatter")
     (description "Black is the uncompromising Python code formatter.")
@@ -8734,7 +8739,7 @@ (define-public python-sparse
      (list python-numba python-numpy python-scipy))
     (native-inputs
      (list python-dask python-importlib-metadata python-pytest
-           python-pytest-black python-pytest-cov))
+           python-pytest-black python-pytest-cov python-setuptools))
     (home-page "https://github.com/pydata/sparse/")
     (synopsis "Library for multi-dimensional sparse arrays")
     (description
@@ -9189,7 +9194,9 @@ (define-public python-numpydoc
                   ;; TODO: unclear why these fail.
                   "-k" "not test_MyClass and not test_my_function")))
     (propagated-inputs (list python-jinja2 python-sphinx))
-    (native-inputs (list python-matplotlib python-pytest python-pytest-cov))
+    (native-inputs
+     (list python-matplotlib python-pytest python-pytest-cov
+           python-setuptools python-wheel))
     (home-page "https://pypi.org/project/numpydoc/")
     (synopsis "Numpy's Sphinx extensions")
     (description "Sphinx extension to support docstrings in Numpy format.")
@@ -9908,7 +9915,7 @@ (define-public python-multidict
          "1kjrxav572j45xvr1iy60zb2g8zqvrinzdkl4ax36js4vczckl8d"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list python-pytest python-pytest-cov))
+     (list python-pytest python-pytest-cov python-setuptools python-wheel))
     (home-page "https://github.com/aio-libs/multidict/")
     (synopsis "Multidict implementation")
     (description "Multidict is dict-like collection of key-value pairs
@@ -9929,7 +9936,7 @@ (define-public python-orderedmultidict
     (propagated-inputs
      (list python-six))
     (native-inputs
-     (list python-flake8 python-pycodestyle))
+     (list python-flake8 python-pycodestyle python-setuptools python-wheel))
     (home-page "https://github.com/gruns/orderedmultidict")
     (synopsis "Python Ordered Multivalue Dictionary - omdict")
     (description "This package contains a library for ordered multivalue
@@ -11711,6 +11718,7 @@ (define-public python-jaraco-classes
            python-pytest-cov
            python-pytest-flake8
            python-pytest-mypy
+           python-setuptools
            python-setuptools-scm
            python-wheel))
     (propagated-inputs (list python-more-itertools))
@@ -15114,7 +15122,7 @@ (define-public python-cram
              (invoke "make" "test"))))))
     (build-system python-build-system)
     (native-inputs
-     (list python-coverage which))
+     (list python-coverage python-setuptools python-wheel which))
     (synopsis "Simple testing framework for command line applications")
     (description
      "Cram is a functional testing framework for command line applications.
@@ -15858,8 +15866,9 @@ (define-public python-immutables
        (uri (pypi-uri "immutables" version))
        (sha256
         (base32 "1x4cinh0xbl6p6p2yfm2s07mxxy3lf0zzai9gqpydk4482bwfdjk"))))
-    (build-system python-build-system)
-    (native-inputs (list python-mypy python-pytest))
+    (build-system pyproject-build-system)
+    (native-inputs (list python-mypy python-pytest
+                         python-setuptools python-wheel))
     (home-page "https://github.com/MagicStack/immutables")
     (synopsis "High-performance immutable mapping type for Python")
     (description
@@ -17494,6 +17503,7 @@ (define-public python-nbconvert
            texlive-collection-basic
            texlive-enumitem
            texlive-environ
+           texlive-etoolbox
            texlive-eurosym
            texlive-etoolbox
            texlive-fancyvrb
@@ -17504,7 +17514,6 @@ (define-public python-nbconvert
            texlive-hyperref
            texlive-infwarerr
            texlive-jknapltx
-           texlive-jknapltx
            texlive-kvoptions
            texlive-lm
            texlive-lm-math
@@ -24199,6 +24208,7 @@ (define-public python-isort
            python-hypothesmith
            python-libcst-minimal
            python-natsort
+           python-pip
            python-poetry-core
            python-pylama
            python-pypa-build
@@ -26954,6 +26964,7 @@ (define-public python-mpv-jsonipc
        (sha256
         (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
     (build-system pyproject-build-system)
+    (native-inputs (list python-setuptools python-wheel))
     (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
     (synopsis "Python API to control MPV using JSON IPC")
     (description "Python MPV JSONIPC implements an interface similar to
@@ -27569,7 +27580,7 @@ (define-public python-ukkonen
        (sha256
         (base32 "17gspl2dsykg000275svvyam4k7wz9ypi9xrfrmsgcgryczravlc"))))
     (build-system pyproject-build-system)
-    (native-inputs (list python-pytest))
+    (native-inputs (list python-pytest python-setuptools python-wheel))
     (propagated-inputs (list python-cffi))
     (home-page "https://github.com/asottile/ukkonen")
     (synopsis "Implementation of bounded Levenshtein distance (Ukkonen)")
@@ -27598,7 +27609,8 @@ (define-public python-identify
                    ;; system-error "utime" "~A" ("No such file or directory")
                    (delete 'ensure-no-mtimes-pre-1980))))
     (native-inputs
-     (list python-coverage python-pytest python-ukkonen))
+     (list python-coverage python-pytest python-setuptools
+           python-ukkonen python-wheel))
     (propagated-inputs
      (list python-editdistance))
     (home-page "https://github.com/chriskuehl/identify")
@@ -27694,7 +27706,8 @@ (define-public python-nodeenv
                          "not test_smoke"
                          " and not test_smoke_n_system_special_chars"))))
     (native-inputs
-     (list python-coverage python-mock python-pytest))
+     (list python-coverage python-mock python-pytest
+           python-setuptools python-wheel))
     (home-page "https://ekalinin.github.io/nodeenv/")
     (synopsis "Create isolated node.js environments")
     (description
@@ -27795,7 +27808,7 @@ (define-public python-cfgv
         (base32 "0g7jg6dssyax6k85lk8afs8qdzgq138g6ij0jmmhgdv5fzks6k9z"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list python-pytest))
+     (list python-pytest python-setuptools python-wheel))
     (home-page "https://github.com/asottile/cfgv")
     (synopsis "Configuration validation library")
     (description
@@ -28004,7 +28017,8 @@ (define-public python-zarr
            python-pytest-doctestplus
            python-pytest-timeout
            python-pytest-xdist
-           python-setuptools-scm))
+           python-setuptools-scm
+           python-wheel))
     (home-page "https://github.com/zarr-developers/zarr-python")
     (synopsis "Chunked, compressed, N-dimensional arrays for Python")
     (description
@@ -28438,7 +28452,7 @@ (define-public python-partd
     (build-system pyproject-build-system)
     (propagated-inputs
      (list python-locket python-numpy python-pandas python-pyzmq python-toolz))
-    (native-inputs (list python-setuptools))
+    (native-inputs (list python-setuptools python-wheel))
     (home-page "https://github.com/dask/partd/")
     (synopsis "Appendable key-value storage")
     (description "Partd stores key-value pairs.  Values are raw bytes.  We
@@ -28588,7 +28602,8 @@ (define-public python-dask
            python-pytest-rerunfailures
            python-pytest-runner
            python-pytest-xdist
-           python-versioneer))
+           python-versioneer
+           python-wheel))
     (home-page "https://github.com/dask/dask/")
     (synopsis "Parallel computing with task scheduling")
     (description
@@ -29164,7 +29179,7 @@ (define-public python-humanize
           "006vpl19bffy9fn0sssxbfakcvgrx7fhvy6l515fzln7vwpqf7zf"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list python-freezegun python-pytest))
+     (list python-freezegun python-setuptools python-pytest python-wheel))
     (home-page "https://github.com/jmoiron/humanize")
     (synopsis "Print numerical information in a human-readable form")
     (description "This package provides a Python module that displays numbers
@@ -29681,7 +29696,8 @@ (define-public python-cairosvg
      (list python-cairocffi python-cssselect2 python-defusedxml
            python-pillow python-tinycss2))
     (native-inputs
-     (list python-pytest-flake8 python-pytest-isort python-pytest-runner))
+     (list python-pytest-flake8 python-pytest-isort python-pytest-runner
+           python-setuptools python-wheel))
     (home-page "https://cairosvg.org/")
     (synopsis "SVG to PDF/PS/PNG converter based on Cairo")
     (description "CairoSVG is a SVG converter based on Cairo.  It can export
@@ -31724,7 +31740,9 @@ (define-public python-cmd2
            python-pytest
            python-pytest-cov
            python-pytest-mock
-           python-setuptools-scm))
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (home-page "https://github.com/python-cmd2/cmd2")
     (synopsis "Tool for building interactive command line applications")
     (description
@@ -33993,7 +34011,7 @@ (define-public python-pyan3
                                 "python-pyan3-fix-absolute-path-bug.patch"))))
     (build-system pyproject-build-system)
     (native-inputs
-     (list python-pytest python-pytest-cov python-wheel))
+     (list python-pytest python-pytest-cov python-setuptools python-wheel))
     (propagated-inputs
      (list python-jinja2))
     (home-page "https://github.com/Technologicat/pyan")
@@ -35495,7 +35513,8 @@ (define-public python-multipart
                 "0hzshd665rl1bkwvaj9va4j3gs8nmb478fbvligx20663xhmzfzp"))))
     (build-system python-build-system)
     (propagated-inputs (list python-six))
-    (native-inputs (list python-pyyaml python-mock python-pytest-cov))
+    (native-inputs (list python-mock python-pytest python-pytest-cov
+                         python-pyyaml python-setuptools python-wheel))
     (arguments
      `(#:phases (modify-phases %standard-phases
                   ;; There is a bug in the test_suit specification.
@@ -35583,6 +35602,7 @@ (define-public python-shtab
             python-pytest
             python-pytest-cov
             python-pytest-timeout
+            python-setuptools
             python-setuptools-scm
             python-wheel))
     (home-page "https://github.com/iterative/shtab")
diff --git a/gnu/packages/simulation.scm b/gnu/packages/simulation.scm
index ed029efeac1..99c0a121dde 100644
--- a/gnu/packages/simulation.scm
+++ b/gnu/packages/simulation.scm
@@ -577,7 +577,7 @@ (define-public python-fenics-dijitso
     (inputs
      (list openmpi python-numpy))
     (native-inputs
-     (list python-pytest-cov))
+     (list python-pytest python-setuptools python-wheel))
     (propagated-inputs
      (list python-mpi4py))
     (arguments
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index e6668146849..c86ef1e5615 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -1153,9 +1153,11 @@ (define-public python-sphinx-autodoc-typehints
     (native-inputs
      (list python-nptyping
            python-pytest
+           python-setuptools
            python-setuptools-scm
            python-sphobjinv
-           python-typing-extensions))
+           python-typing-extensions
+           python-wheel))
     (home-page "https://pypi.org/project/sphinx-autodoc-typehints/")
     (synopsis "Type hints for the Sphinx autodoc extension")
     (description "This extension allows you to use Python 3 annotations for
diff --git a/gnu/packages/syndication.scm b/gnu/packages/syndication.scm
index d986e049ccf..a2d8c61be45 100644
--- a/gnu/packages/syndication.scm
+++ b/gnu/packages/syndication.scm
@@ -474,7 +474,9 @@ (define-public tuir
            python-mock
            python-pylint
            python-pytest
-           python-vcrpy))
+           python-vcrpy
+           python-setuptools
+           python-wheel))
     (home-page "https://gitlab.com/ajak/tuir")
     (synopsis "Terminal viewer for Reddit (Terminal UI for Reddit)")
     (description
diff --git a/gnu/packages/terminals.scm b/gnu/packages/terminals.scm
index 203254490ef..98a6bf6684a 100644
--- a/gnu/packages/terminals.scm
+++ b/gnu/packages/terminals.scm
@@ -1197,7 +1197,7 @@ (define-public python-halo
     (propagated-inputs (list python-colorama python-log-symbols python-six
                              python-spinners python-termcolor))
     (native-inputs (list python-coverage python-nose python-pylint python-tox
-                         python-twine))
+                         python-twine python-setuptools python-wheel))
     (home-page "https://github.com/manrajgrover/halo")
     (synopsis "Python library to display graphical spinners in the terminal")
     (description "Halo is a Python library to display graphical spinners in
diff --git a/gnu/packages/time.scm b/gnu/packages/time.scm
index 552ac346c4a..d91058b378f 100644
--- a/gnu/packages/time.scm
+++ b/gnu/packages/time.scm
@@ -252,7 +252,8 @@ (define-public python-dateutil
                      ;; XXX: Fails to get timezone from /etc/localtime.
                      "--ignore=dateutil/test/test_tz.py")))
     (native-inputs
-     (list python-pytest python-pytest-cov python-setuptools-scm))
+     (list python-pytest python-pytest-cov python-setuptools
+           python-setuptools-scm python-wheel))
     (propagated-inputs
      (list python-six))
     (home-page "https://dateutil.readthedocs.io/en/stable/")
@@ -508,13 +509,14 @@ (define-public python-arrow
                           ;; Remove when python-dateutil > 2.8.1.
                           "-k" "not test_parse_tz_name_zzz")))
     (native-inputs
-     (list ;; For testing
-           python-chai
+     (list python-chai
            python-pytest
            python-pytest-cov
            python-pytest-mock
            python-pytz
-           python-simplejson))
+           python-setuptools
+           python-simplejson
+           python-wheel))
     (propagated-inputs
      (list python-dateutil))
     (home-page "https://github.com/arrow-py/arrow")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 226bcd4ad63..bccc219f679 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -2069,6 +2069,8 @@ (define-public pre-commit
            python-pytest
            python-pytest-env
            python-re-assert
+           python-setuptools
+           python-wheel
            which))
     ;; Propagate because pre-commit is also used as a module.
     (propagated-inputs
diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
index 5f1148b7430..20cbb0b8bed 100644
--- a/gnu/packages/virtualization.scm
+++ b/gnu/packages/virtualization.scm
@@ -2030,10 +2030,12 @@ (define-public python-qemu-qmp
                   (format #t "test suite not run~%")))))))
     (native-inputs
      (list python-avocado-framework
-           python-setuptools-scm
            python-flake8
            python-isort
-           python-pylint))
+           python-pylint
+           python-setuptools
+           python-setuptools-scm
+           python-wheel))
     (propagated-inputs
      (list python-pygments
            python-urwid
@@ -2807,7 +2809,8 @@ (define-public python-transient
            python-requests
            python-toml))
     (native-inputs
-     (list python-black python-mypy python-pyhamcrest python-twine))
+     (list python-black python-mypy python-pyhamcrest python-twine
+           python-setuptools python-wheel))
     (home-page "https://github.com/ALSchwalm/transient")
     (synopsis "QEMU Wrapper written in Python")
     (description
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm
index 6c894fc45bf..f2fbec1b23d 100644
--- a/gnu/packages/xorg.scm
+++ b/gnu/packages/xorg.scm
@@ -109,6 +109,7 @@ (define-module (gnu packages xorg)
   #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-compression)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-xyz)
@@ -1740,7 +1741,8 @@ (define-public python-xcffib
     (source (package-source xcffibgen))
     (build-system pyproject-build-system)
     (native-inputs
-     (list pkg-config which xcb-proto xcffibgen))
+     (list pkg-config python-setuptools python-wheel
+           which xcb-proto xcffibgen))
     (inputs
      (list libxcb))
     (propagated-inputs
-- 
2.41.0