Bug 2209016

Summary: policycoreutils fails to build with pip 23.1.2
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: policycoreutilsAssignee: Petr Lautrbach <plautrba>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 39CC: dwalsh, lvrabec, mmalik, plautrba, vmojzis
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Linux   
URL: https://copr.fedorainfracloud.org/coprs/churchyard/pip-23.1.2/package/policycoreutils/
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-01-02 14:22:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2168842, 2186979, 2231791    

Description Miro Hrončok 2023-05-22 10:06:04 UTC
When checking the impact of upgradign pip from 23.0.1 to 23.1.2 in https://src.fedoraproject.org/rpms/python-pip/pull-request/123 I realized policycoreutils 3.5-2 repeatedly fails with the new pip but succeeds with the old one.

The error is:

...
/usr/bin/python3 -m pip install --prefix=/usr `test -n "/builddir/build/BUILDROOT/policycoreutils-3.5-2.fc39.x86_64" && echo --root /builddir/build/BUILDROOT/policycoreutils-3.5-2.fc39.x86_64 --ignore-installed --no-deps`  .
Processing /builddir/build/BUILD/selinux-3.5/python/sepolicy
  Installing build dependencies: started
  Installing build dependencies: finished with status 'error'
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f4ec840cf50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f4ec9e2b890>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f4ec8594f50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f4ec85ed890>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f4ec85ec590>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
      ERROR: No matching distribution found for setuptools>=40.8.0
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.


I believe pip defaults to isolated builds now and will always attempt to install build dependencies (setuptools>=40.8.0 in this case because that I the default when no build dependencies are mentioned in pyproject.toml) from the internet to a temporary virtual environment.

I think this can be fixed by adding --no-build-isolation to pip install:

$ pip install --help | grep isolation
  --no-build-isolation        Disable isolation when building a modern source

Reproducible: Always

Steps to Reproduce:
Build policycoreutils e.g. in https://copr.fedorainfracloud.org/coprs/churchyard/pip-23.1.2
Actual Results:  
Build fails.

Expected Results:  
Build succeeds.

All logs available in https://copr.fedorainfracloud.org/coprs/churchyard/pip-23.1.2/package/policycoreutils/

Comment 2 Fedora Update System 2023-05-30 10:37:41 UTC
FEDORA-2023-14c6ba9d1b has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-14c6ba9d1b

Comment 3 Fedora Release Engineering 2023-08-16 08:09:41 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 39 development cycle.
Changing version to 39.