[RFC PATCH] python/setup.py: Drop version checking via pkg_resources

Thomas Huth posted 1 patch 1 month, 4 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20260211161154.740256-1-thuth@redhat.com
Maintainers: John Snow <jsnow@redhat.com>, Cleber Rosa <crosa@redhat.com>
python/setup.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
[RFC PATCH] python/setup.py: Drop version checking via pkg_resources
Posted by Thomas Huth 1 month, 4 weeks ago
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
Re: [RFC PATCH] python/setup.py: Drop version checking via pkg_resources
Posted by Daniel P. Berrangé 1 month, 4 weeks ago
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 :|