]> git.ipfire.org Git - thirdparty/qemu.git/commit
mkvenv: replace distlib.database with importlib.metadata/pkg_resources
authorPaolo Bonzini <pbonzini@redhat.com>
Fri, 19 May 2023 08:06:19 +0000 (10:06 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 19 May 2023 18:09:21 +0000 (20:09 +0200)
commitc673f3d0fe87f6e23a259c620fba7fc9e9d3621f
tree6ba4a647fee55854425214b7f05a8f3ff51ef8d3
parentdde001ef7161a313e4fe43bb522e8ccc02dffa9e
mkvenv: replace distlib.database with importlib.metadata/pkg_resources

importlib.metadata is just as good as distlib.database and a bit more
battle-proven for "egg" based distributions, and in fact that is exactly
why mkvenv.py is not using distlib.database to find entry points: it
simply does not work for eggs.

The only disadvantage of importlib.metadata is that it is not available
by default before Python 3.8, so we need a fallback to pkg_resources
(again, just like for the case of finding entry points).  Do so to
fix issues where incorrect egg metadata results in a JSONDecodeError.

While at it, reuse the new _get_version function to diagnose an incorrect
version of the package even if importlib.metadata is not available.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
python/scripts/mkvenv.py
python/setup.cfg