On Thu, Jan 20, 2022 at 07:52:21PM -0500, John Snow wrote: > setuptools is a package that replaces the python stdlib 'distutils'. It > is generally installed by all venv-creating tools "by default". It isn't > actually needed at runtime for the qemu package, so our own setup.cfg > does not mention it as a dependency. > > However, tox will create virtual environments that include it, and will > upgrade it to the very latest version. the 'venv' tool will also include > whichever version your host system happens to have. > > Unfortunately, setuptools version 60.0.0 and above include a hack to > forcibly overwrite python's built-in distutils. The pylint tool that we > use to run code analysis checks on this package relies on distutils and > suffers regressions when setuptools >= 60.0.0 is present at all, see > https://github.com/PyCQA/pylint/issues/5704 > > Instruct tox and the 'check-dev' targets to avoid setuptools packages > that are too new, for now. Pipenv is unaffected, because setuptools 60 > does not offer Python 3.6 support, and our pipenv config is pinned > against Python 3.6. > > Signed-off-by: John Snow <js...@redhat.com> > --- > python/Makefile | 2 ++ > python/setup.cfg | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/python/Makefile b/python/Makefile > index 3334311362..949c472624 100644 > --- a/python/Makefile > +++ b/python/Makefile > @@ -68,6 +68,8 @@ $(QEMU_VENV_DIR) $(QEMU_VENV_DIR)/bin/activate: setup.cfg > echo "ACTIVATE $(QEMU_VENV_DIR)"; \ > . $(QEMU_VENV_DIR)/bin/activate; \ > echo "INSTALL qemu[devel] $(QEMU_VENV_DIR)"; \ > + pip install --disable-pip-version-check \ > + "setuptools<60.0.0" 1>/dev/null; \ > make develop 1>/dev/null; \ > ) > @touch $(QEMU_VENV_DIR) > diff --git a/python/setup.cfg b/python/setup.cfg > index 417e937839..aa238d8bc9 100644 > --- a/python/setup.cfg > +++ b/python/setup.cfg > @@ -163,6 +163,7 @@ deps = > .[devel] > .[fuse] # Workaround to trigger tox venv rebuild > .[tui] # Workaround to trigger tox venv rebuild > + setuptools < 60 # Workaround, please see commit msg. > commands = > make check >
Reviewed-by: Beraldo Leal <bl...@redhat.com> -- Beraldo