Bug 2040656
Summary: | Sync patch 251 with Python 3.10+ on Fedora < 36 | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 9 | Reporter: | Miro Hrončok <mhroncok> |
Component: | python3.9 | Assignee: | Miro Hrončok <mhroncok> |
Status: | CLOSED ERRATA | QA Contact: | Lukáš Zachar <lzachar> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 9.0 | CC: | pviktori |
Target Milestone: | rc | Keywords: | Triaged |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | python3.9-3.9.9-4.el9 | Doc Type: | No Doc Update |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2022-05-17 15:36:22 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
2022-01-14 11:34:44 UTC
Old version of Python with RPM packaged setuptools: <mock-chroot> sh-5.1# rpm -q python3 python3-3.9.9-2.el9.x86_64 <mock-chroot> sh-5.1# python3 -m pip list Package Version ---------- ------- pip 21.2.3 setuptools 53.0.0 <mock-chroot> sh-5.1# git clone https://github.com/fedora-python/Pello Cloning into 'Pello'... <mock-chroot> sh-5.1# cd Pello/ <mock-chroot> sh-5.1# python3 setup.py install ... Extracting Pello-1.0.2-py3.9.egg to /usr/local/lib/python3.9/site-packages Adding Pello 1.0.2 to easy-install.pth file Installing pello_greeting script to /usr/local/bin ... <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg ... Observe that it installs packages to /usr/local. ------------------------------------------------------ The same version of Python with pip-upgraded setuptools: <mock-chroot> sh-5.1# python3 -m pip install --upgrade setuptools ... Successfully installed setuptools-60.5.0 <mock-chroot> sh-5.1# python3 -m pip list Package Version ---------- ------- pip 21.2.3 setuptools 60.5.0 <mock-chroot> sh-5.1# python3 setup.py install ... Extracting Pello-1.0.2-py3.9.egg to /usr/lib/python3.9/site-packages byte-compiling /usr/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/__init__.py to __init__.cpython-39.pyc byte-compiling /usr/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/__main__.py to __main__.cpython-39.pyc byte-compiling /usr/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/pello_greeting.py to pello_greeting.cpython-39.pyc Adding Pello 1.0.2 to easy-install.pth file Installing pello_greeting script to /usr/bin <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/bin/pello_greeting /usr/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg ... Observe that it installs packages to /usr directly. This is the behavior we want to prevent. ------------------------------------------------------ Similarly, if we get a hypothetical future release of pip that switches to sysconfig early, e.g. from https://github.com/hroncok/pip/tree/hypothetical-future <mock-chroot> sh-5.1# python3 -m pip install --upgrade https://github.com/hroncok/pip/archive/refs/heads/hypothetical-future.zip ... Successfully installed pip-22.0.dev0 <mock-chroot> sh-5.1# python3 -m pip install . ... Successfully installed Pello-1.0.2 <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/bin/pello_greeting /usr/lib/python3.9/site-packages/Pello-1.0.2.dist-info/* /usr/lib/python3.9/site-packages/pello/* Observe that it installs packages to /usr directly. This is the behavior we want to prevent. ------------------------------------------------------ Now, with the updated Python, again in a fresh environment. <mock-chroot> sh-5.1# rpm -q python3 python3-3.9.9-4.el9.x86_64 <mock-chroot> sh-5.1# python3 -m pip list Package Version ---------- ------- pip 21.2.3 setuptools 53.0.0 <mock-chroot> sh-5.1# git clone https://github.com/fedora-python/Pello Cloning into 'Pello'... <mock-chroot> sh-5.1# cd Pello/ <mock-chroot> sh-5.1# python3 setup.py install ... Extracting Pello-1.0.2-py3.9.egg to /usr/local/lib/python3.9/site-packages Adding Pello 1.0.2 to easy-install.pth file Installing pello_greeting script to /usr/local/bin ... <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg ... Observe that it *still* installs packages to /usr/local. It does not break stuff for RPM installed setuptools+pip. ------------------------------------------------------ New version of Python with pip-upgraded setuptools: <mock-chroot> sh-5.1# python3 -m pip install --upgrade setuptools ... Successfully installed setuptools-60.5.0 <mock-chroot> sh-5.1# python3 -m pip list Package Version ---------- ------- pip 21.2.3 setuptools 60.5.0 <mock-chroot> sh-5.1# python3 setup.py install ... Extracting Pello-1.0.2-py3.9.egg to /usr/local/lib/python3.9/site-packages byte-compiling /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/__init__.py to __init__.cpython-39.pyc byte-compiling /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/__main__.py to __main__.cpython-39.pyc byte-compiling /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg/pello/pello_greeting.py to pello_greeting.cpython-39.pyc Adding Pello 1.0.2 to easy-install.pth file Installing pello_greeting script to /usr/local/bin ... <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/local/lib/python3.9/site-packages/Pello-1.0.2-py3.9.egg ... Observe that it installs packages to /usr/local. That is the verified fix for setuptools. ------------------------------------------------------ And pip: <mock-chroot> sh-5.1# python3 -m pip install --upgrade https://github.com/hroncok/pip/archive/refs/heads/hypothetical-future.zip ... Successfully installed pip-22.0.dev0 <mock-chroot> sh-5.1# python3 -m pip install . ... Successfully installed Pello-1.0.2 <mock-chroot> sh-5.1# python3 -m pip uninstall Pello Found existing installation: Pello 1.0.2 Uninstalling Pello-1.0.2: Would remove: /usr/local/bin/pello_greeting /usr/local/lib/python3.9/site-packages/Pello-1.0.2.dist-info/* /usr/local/lib/python3.9/site-packages/pello/* Proceed (Y/n)? ... Observe that it also installs packages to /usr/local. That is the verified fix for pip. 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 (new packages: python3.9), 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/RHBA-2022:3899 |