From: Thomas Huth <thuth@redhat.com>
pkg_resources has been dropped from setuptools v82.0 and newer,
so our setup.py script is currently failing there, breaking our CI.
To fix it, switch to a direct version check instead.
While we're at it, also bump the minimum version of setuptools
to v44 now since that is the minimum that might still be in use
on the distros we care about according to:
https://repology.org/project/python%3Asetuptools/versions
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
No clue whether that version check is fine with all versions of
setuptools, thus I marked the patch as RFC. At least it survives
the CI:
https://gitlab.com/thuth/qemu/-/pipelines/2319359396
python/setup.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/python/setup.py b/python/setup.py
index c5bc45919a4..ae242ac95ac 100755
--- a/python/setup.py
+++ b/python/setup.py
@@ -7,7 +7,6 @@
import setuptools
from setuptools.command import bdist_egg
import sys
-import pkg_resources
class bdist_egg_guard(bdist_egg.bdist_egg):
@@ -30,8 +29,8 @@ def main():
QEMU tooling installer
"""
- # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108
- pkg_resources.require('setuptools>=39.2')
+ if int(setuptools.__version__.split('.')[0]) < 44:
+ raise ModuleNotFoundError('version of setuptools is too old')
setuptools.setup(cmdclass={'bdist_egg': bdist_egg_guard})
--
2.53.0
On Wed, Feb 11, 2026 at 05:11:54PM +0100, Thomas Huth wrote:
> From: Thomas Huth <thuth@redhat.com>
>
> pkg_resources has been dropped from setuptools v82.0 and newer,
> so our setup.py script is currently failing there, breaking our CI.
> To fix it, switch to a direct version check instead.
> While we're at it, also bump the minimum version of setuptools
> to v44 now since that is the minimum that might still be in use
> on the distros we care about according to:
> https://repology.org/project/python%3Asetuptools/versions
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
> No clue whether that version check is fine with all versions of
> setuptools, thus I marked the patch as RFC. At least it survives
> the CI:
> https://gitlab.com/thuth/qemu/-/pipelines/2319359396
>
> python/setup.py | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
This works so:
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
but the other option discussed on IRC was to remove the
existing version check entirely on the basis that all our
supported platforms will have sufficient version by default
and we don't need to spend time checking for the benefit of
unsupported platforms.
>
> diff --git a/python/setup.py b/python/setup.py
> index c5bc45919a4..ae242ac95ac 100755
> --- a/python/setup.py
> +++ b/python/setup.py
> @@ -7,7 +7,6 @@
> import setuptools
> from setuptools.command import bdist_egg
> import sys
> -import pkg_resources
>
>
> class bdist_egg_guard(bdist_egg.bdist_egg):
> @@ -30,8 +29,8 @@ def main():
> QEMU tooling installer
> """
>
> - # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108
> - pkg_resources.require('setuptools>=39.2')
> + if int(setuptools.__version__.split('.')[0]) < 44:
> + raise ModuleNotFoundError('version of setuptools is too old')
>
> setuptools.setup(cmdclass={'bdist_egg': bdist_egg_guard})
>
> --
> 2.53.0
>
>
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
© 2016 - 2026 Red Hat, Inc.