The signature option being set on py-wheel causes a circular dependency when building py-keyring and py-importlib-metadata [tburns@repo2 /repos/poudriere/ports/default]$ sudo /usr/local/bin/poudriere bulk -j 131 security/py-keyring@py38 ....... [00:00:14] Error: Dependency loop detected: These packages depend on each other: py38-importlib-metadata-6.0.0_1 py38-wheel-0.38.4 py38-keyring-23.9.3_2,1 [00:00:14] Cleaning up [00:00:14] Unmounting file systems [tburns@repo2 /repos/poudriere/ports/default]$ sudo /usr/local/bin/poudriere bulk -j 131 devel/py-importlib-metadata@py38 ..... These packages depend on each other: py38-wheel-0.38.4 py38-keyring-23.9.3_2,1 py38-importlib-metadata-6.0.0_1 [00:00:06] Cleaning up [00:00:06] Unmounting file systems [tburns@repo2 /usr/local/etc/poudriere.d/131-options]$ cat devel_py-wheel/options # This file is auto-generated by 'make config'. # Options for py38-wheel-0.38.4 _OPTIONS_READ=py38-wheel-0.38.4 _FILE_COMPLETE_OPTIONS_LIST=PIP SIGNATURE OPTIONS_FILE_UNSET+=PIP OPTIONS_FILE_SET+=SIGNATURE It has something to do with the signature option in py-wheel. I unset the signature option and got them to build.
With SIGNATURE option: wheel depends on keyring keyring depends on importlib_metadata importlib_metadata (when under PEP-517) build depends on wheel The real issue, importlib_metadata (and wheel) needs to switch away from setuptools if it plays a role in PEP-517 bootstrapping, even on older Python (< 3.10) that upstream effectively doesn't support apart from security. setuptools itself relies on wheel to do anything with wheels at all.
Created attachment 240319 [details] v1 Bandage fix until upstream situation changes, try this.
The Makefile patch works.(In reply to Charlie Li from comment #2)
Latest upstream wheel switched away from setuptools build backend, and to right wheel's dependency tree, all options including SIGNATURE are proposed for removal.