Bug 285909 - devel/py-setuptools: AttributeError: 'PathDistribution' object has no attribute '_normalized_name' on Python 3.9
Summary: devel/py-setuptools: AttributeError: 'PathDistribution' object has no attribu...
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-python (Nobody)
URL: https://github.com/pypa/setuptools/is...
Keywords:
Depends on:
Blocks:
 
Reported: 2025-04-06 05:39 UTC by Niels Kobschätzki
Modified: 2025-04-10 17:52 UTC (History)
2 users (show)

See Also:
vishwin: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Niels Kobschätzki 2025-04-06 05:39:05 UTC
py-setuptools does not build for Python 3.9 with this error:

* Getting build dependencies for wheel...
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
    main()
  File "/usr/local/lib/python3.9/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main
    json_out["return_val"] = hook(**hook_input["kwargs"])
  File "/usr/local/lib/python3.9/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel
    return hook(config_settings)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/build_meta.py", line 177, in get_requires_for_build_wheel
    return self._get_build_requires(
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/build_meta.py", line 159, in _get_build_requires
    self.run_setup()
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/build_meta.py", line 174, in run_setup
    exec(compile(code, __file__, 'exec'), locals())
  File "setup.py", line 87, in <module>
    dist = setuptools.setup(**setup_params)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/__init__.py", line 86, in setup
    _install_setup_requires(attrs)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/__init__.py", line 75, in _install_setup_requires
    dist = MinimalDistribution(attrs)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/__init__.py", line 57, in __init__
    super().__init__(filtered)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/dist.py", line 474, in __init__
    for ep in metadata.entry_points(group='distutils.setup_keywords'):
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/_vendor/importlib_metadata/__init__.py", line 999, in entry_points
    return SelectableGroups.load(eps).select(**params)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/_vendor/importlib_metadata/__init__.py", line 449, in load
    ordered = sorted(eps, key=by_group)
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/_vendor/importlib_metadata/__init__.py", line 996, in <genexpr>
    eps = itertools.chain.from_iterable(
  File "/wrkdirs/usr/ports/devel/py-setuptools/work-py39/setuptools-63.1.0/setuptools/_vendor/importlib_metadata/_itertools.py", line 16, in unique_everseen
    k = key(element)
AttributeError: 'PathDistribution' object has no attribute '_normalized_name'

ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Comment 1 Charlie Li freebsd_committer freebsd_triage 2025-04-06 10:02:23 UTC
Looks like you hit https://github.com/pypa/setuptools/issues/3452 . I'll test a couple things once I can sit down at a keyboard again later today.
Comment 2 Arnaud de Prelle 2025-04-07 19:28:34 UTC
(In reply to Niels Kobschätzki from comment #0)

I'm facing the exact same error.

FreeBSD 14.2.
DEFAULT_VERSION+= python=3.9 (...)
Port tree up2date.

Rgds,
apn.
Comment 3 commit-hook freebsd_committer freebsd_triage 2025-04-10 17:51:34 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=c4dd8f40175252743857e936c56c1c8740202230

commit c4dd8f40175252743857e936c56c1c8740202230
Author:     Charlie Li <vishwin@FreeBSD.org>
AuthorDate: 2025-04-10 17:41:54 +0000
Commit:     Charlie Li <vishwin@FreeBSD.org>
CommitDate: 2025-04-10 17:50:23 +0000

    devel/py-setuptools@py39: add py39 compat layer to vendored importlib-metadata

    ...and partially revert a setuptools commit exposing another error.

    Context: https://github.com/pypa/setuptools/issues/3452

    Reported by: Niels Kobschätzki
    PR: 285909

 devel/py-setuptools/Makefile                       |  8 +++-
 ...endor_importlib__metadata_____init____.py (new) | 41 +++++++++++++++++
 ...endor_importlib__metadata___py39compat.py (new) | 51 ++++++++++++++++++++++
 .../files/py39/patch-setuptools_dist.py (new)      | 14 ++++++
 4 files changed, 113 insertions(+), 1 deletion(-)