Summary
ignore-pip-unversioned-pkgs config option has the opposite effect to what
its name implies. Instead of ignoring packages, it adds them to the
unversioned_packages set that is checked.
EasyBuild version
EasyBuild 5.2.1
Relevant code
easybuild/easyblocks/p/python.py, lines 198-199:
if build_option('ignore_pip_unversioned_pkgs'):
unversioned_packages.update(build_option('ignore_pip_unversioned_pkgs'))
.update() adds to the set. It should be .difference_update() to
actually exclude those packages from the check.
To reproduce
- Have Ubuntu system packages with 0.0.0 pip stubs (e.g.
brz-etckeeper,
screen-resolution-extra, ubuntu-drivers-common, xkit) present in
the system Python.
- Set
ignore-pip-unversioned-pkgs = brz-etckeeper,... in easybuild.cfg.
- Build
Python/3.13.5-GCCcore-14.3.0 — it fails in sanity check because
those packages are not present in the newly built Python, even though they
were explicitly listed to be ignored.
Expected behaviour
Packages listed in ignore-pip-unversioned-pkgs should be skipped in the
sanity check.
Suggested fix
Change line 199 from .update() to .difference_update().
Summary
ignore-pip-unversioned-pkgsconfig option has the opposite effect to whatits name implies. Instead of ignoring packages, it adds them to the
unversioned_packagesset that is checked.EasyBuild version
EasyBuild 5.2.1
Relevant code
easybuild/easyblocks/p/python.py, lines 198-199:.update()adds to the set. It should be.difference_update()toactually exclude those packages from the check.
To reproduce
brz-etckeeper,screen-resolution-extra,ubuntu-drivers-common,xkit) present inthe system Python.
ignore-pip-unversioned-pkgs = brz-etckeeper,...ineasybuild.cfg.Python/3.13.5-GCCcore-14.3.0— it fails in sanity check becausethose packages are not present in the newly built Python, even though they
were explicitly listed to be ignored.
Expected behaviour
Packages listed in
ignore-pip-unversioned-pkgsshould be skipped in thesanity check.
Suggested fix
Change line 199 from
.update()to.difference_update().