Bug 2223227

Summary: Please update setuptools to support PEP 621
Product: Red Hat Enterprise Linux 9 Reporter: Orion Poplawski <orion>
Component: python-setuptoolsAssignee: Python Maintainers <python-maint>
Status: NEW --- QA Contact: RHEL CS Apps Subsystem QE <rhel-cs-apps-subsystem-qe>
Severity: high Docs Contact:
Priority: unspecified    
Version: 9.2CC: casper, cstratak, mhroncok, pviktori
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Orion Poplawski 2023-07-16 22:42:13 UTC
Description of problem:

When trying to build newer python packages for EPEL9, I'm seeing errors like:

+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/uc.micro-py-1.0.2/pyproject-wheeldir -x test
Handling setuptools from build-system.requires
Requirement satisfied: setuptools
   (installed: setuptools 53.0.0)
HOOK STDOUT: running egg_info
HOOK STDOUT: creating UNKNOWN.egg-info
HOOK STDOUT: writing UNKNOWN.egg-info/PKG-INFO
HOOK STDOUT: writing dependency_links to UNKNOWN.egg-info/dependency_links.txt
HOOK STDOUT: writing top-level names to UNKNOWN.egg-info/top_level.txt
HOOK STDOUT: writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
HOOK STDOUT: reading manifest file 'UNKNOWN.egg-info/SOURCES.txt'
HOOK STDOUT: reading manifest template 'MANIFEST.in'
HOOK STDOUT: adding license file 'LICENSE'
HOOK STDOUT: writing manifest file 'UNKNOWN.egg-info/SOURCES.txt'
...
+ /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-uc-micro-py-1.0.2-2.el9.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-uc-micro-py-1.0.2-2.el9.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-uc-micro-py-1.0.2-2.el9.noarch --sitelib /usr/lib/python3.9/site-packages --sitearch /usr/lib64/python3.9/site-packages --python-version 3.9 --pyproject-record /builddir/build/BUILD/python-uc-micro-py-1.0.2-2.el9.noarch-pyproject-record --prefix /usr uc_micro
Traceback (most recent call last):
  File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 775, in <module>
    main(cli_args)
  File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 730, in main
    file_section, module_names = pyproject_save_files_and_modules(
  File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 720, in pyproject_save_files_and_modules
    generate_file_list(paths_dict, globs, include_auto)
  File "/usr/lib/rpm/redhat/pyproject_save_files.py", line 534, in generate_file_list
    raise ValueError(f"Globs did not match any module: {missed_text}")
ValueError: Globs did not match any module: uc_micro

Version-Release number of selected component (if applicable):
python3-setuptools-53.0.0-12.el9.noarch

Comment 1 Miro Hrončok 2023-07-17 07:09:54 UTC
What bothers me about this is that setuptools will happily package such project as UNKNOWN-0.0.0 instead of failing out right.

Comment 2 Miro Hrončok 2023-07-17 07:14:22 UTC
As far as the requested update goes, we have seen many breaking cxhnages when updating setuptools in Fedora. I am quite pessimistic about rebasing from setuptools 53 to setuptools 61. I thionk this would require a backport. I have not accessed a possibility or cost of such backport.

Comment 3 Petr Viktorin 2023-08-09 12:26:23 UTC
At first glance, it looks like packaging a newer version of setuptools as a new alternative package might be the best way to go.

Comment 4 Orion Poplawski 2023-08-13 22:56:29 UTC
As long as this is not done as a dnf module - EPEL cannot build against module provided packages.