Bug 2207631

Summary: %py3_check_import: /usr/bin/python3.11: can't open file '/usr/lib/rpm/redhat/import_all_modules.py': [Errno 2] No such file or directory
Product: Red Hat Enterprise Linux 8 Reporter: Miro Hrončok <mhroncok>
Component: python3.11Assignee: Python Maintainers <python-maint>
Status: CLOSED ERRATA QA Contact: Lukáš Zachar <lzachar>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: bstinson, jwboyer, ksurma, maxwell, torsava
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python3.11-3.11.4-4.el8 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-14 15:35:33 UTC 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 Miro Hrončok 2023-05-16 11:45:35 UTC
Description of problem:
With python3.11-rpm-macros-3.11.2-2.el8.noarch the %py3_check_import macro is broken:


In the spec:

%global python3_pkgversion 3.11
...
%py3_check_import rpm rpm.transaction

Expands to:

...
/usr/bin/python3.11 -sP /usr/lib/rpm/redhat/import_all_modules.py rpm rpm.transaction

Breaks with:

Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.Rx4cp2
+ umask 022
+ cd /builddir/build/BUILD
+ cd rpm-4.14.3
+ PATH=/builddir/build/BUILDROOT/rpm-4.14.3-26.el8.x86_64/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/rpm-4.14.3-26.el8.x86_64/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/rpm-4.14.3-26.el8.x86_64/usr/lib/python3.11/site-packages
+ _PYTHONSITE=/builddir/build/BUILDROOT/rpm-4.14.3-26.el8.x86_64/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/rpm-4.14.3-26.el8.x86_64/usr/lib/python3.11/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ /usr/bin/python3.11 -sP /usr/lib/rpm/redhat/import_all_modules.py rpm rpm.transaction
/usr/bin/python3.11: can't open file '/usr/lib/rpm/redhat/import_all_modules.py': [Errno 2] No such file or directory

Version-Release number of selected component (if applicable): 3.11.2-2.el8


How reproducible: Always.


Steps to Reproduce:
1. Build a spec file with Python 3.11 and %py3_check_import

Actual results:
/usr/bin/python3.11: can't open file '/usr/lib/rpm/redhat/import_all_modules.py': [Errno 2] No such file or directory

Expected results:
%py3_check_import imports packages

Comment 1 Tomas Orsava 2023-05-17 12:36:25 UTC
Let's add the script to python3.11-rpm-macros, but version it's path to include the `3.11` version, so that it doesn't clash with any future Python 3.12+ macros/scripts.

Comment 2 Tomas Orsava 2023-05-31 12:10:58 UTC
And let's add the tests for the macros component as part of this change.

Comment 5 Karolina Surma 2023-08-11 13:28:46 UTC
Testing done in the PR.

Comment 10 errata-xmlrpc 2023-11-14 15:35:33 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Moderate: python3.11 security update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2023:7024