Bug 269735 - devel/py-wheel@py38, devel/py-keyring@py38, devel/py-importlib-metadata@py38 circular dependency
Summary: devel/py-wheel@py38, devel/py-keyring@py38, devel/py-importlib-metadata@py38 ...
Status: Open
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Some People
Assignee: Charlie Li
URL:
Keywords:
Depends on: 270243
Blocks:
  Show dependency treegraph
 
Reported: 2023-02-21 14:30 UTC by tburns
Modified: 2023-03-27 05:58 UTC (History)
6 users (show)

See Also:


Attachments
v1 (2.04 KB, patch)
2023-02-22 05:39 UTC, Charlie Li
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description tburns 2023-02-21 14:30:39 UTC
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.
Comment 1 Charlie Li freebsd_committer freebsd_triage 2023-02-22 05:05:39 UTC
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.
Comment 2 Charlie Li freebsd_committer freebsd_triage 2023-02-22 05:39:42 UTC
Created attachment 240319 [details]
v1

Bandage fix until upstream situation changes, try this.
Comment 3 tburns 2023-02-27 11:55:11 UTC
The Makefile patch works.(In reply to Charlie Li from comment #2)
Comment 4 Charlie Li freebsd_committer freebsd_triage 2023-03-27 05:58:44 UTC
Latest upstream wheel switched away from setuptools build backend, and to right wheel's dependency tree, all options including SIGNATURE are proposed for removal.