From Fedora Project Wiki

< SIGs‎ | Python

No edit summary
Line 22: Line 22:


"Don't try to build a libpythonMAJOR.MINOR.a"
"Don't try to build a libpythonMAJOR.MINOR.a"
Upstream: https://bugs.python.org/issue43103


'''Downstream only: not appropriate for upstream.'''
'''Downstream only: not appropriate for upstream.'''
Line 28: Line 30:


== 00189-use-rpm-wheels.patch ==
== 00189-use-rpm-wheels.patch ==
"instead of bundled wheels, use our RPM packaged wheels. We keep them in /usr/share/python-wheels."
Upstream: https://bugs.python.org/issue42856


'''Tracked by:''' https://bugzilla.redhat.com/show_bug.cgi?id=1874803
'''Tracked by:''' https://bugzilla.redhat.com/show_bug.cgi?id=1874803
"instead of bundled wheels, use our RPM packaged wheels. We keep them in /usr/share/python-wheels."


=> Should be proposed upstream as an opt-in option.
=> Should be proposed upstream as an opt-in option.

Revision as of 16:26, 2 February 2021

Fedora downstream patches are tracked in the page: Python Patches. This page gives the status of the downstream patches currently maintained in the latest Python package of Fedora.

Fedora downstream patches

00001-rpath.patch

"Fixup distutils/unixccompiler.py to remove standard library path from rpath"

=> Can be removed, but blocked by a Fedora change.

This patch is basically useless, but removing it would require to ensure that no Fedora package use rpath. See: https://pagure.io/packaging-committee/issue/886

See also: https://bugs.python.org/issue36659#msg340731

Added by: https://src.fedoraproject.org/rpms/python/c/f5df1f834310948b32407933e3b8713e1121105b (2010-03-16)

00111-no-static-lib.patch

"Don't try to build a libpythonMAJOR.MINOR.a"

Upstream: https://bugs.python.org/issue43103

Downstream only: not appropriate for upstream.

Added by: https://src.fedoraproject.org/rpms/python3/c/aa4aef22cccc56ab0e7957b45209502ec487cdb1 (2010-01-18)

00189-use-rpm-wheels.patch

"instead of bundled wheels, use our RPM packaged wheels. We keep them in /usr/share/python-wheels."

Upstream: https://bugs.python.org/issue42856

Tracked by: https://bugzilla.redhat.com/show_bug.cgi?id=1874803

=> Should be proposed upstream as an opt-in option.

Added by: https://src.fedoraproject.org/rpms/python3/c/0b241abda6b7f8d4b092974cecd11d9660fa7b83 (2018-08-15)

The patch should be rewritten to add a configure option for the Fedora directory (/usr/share/python-wheels/).

The patch should be rewritten to check first the _bundled/ directory, and only fallback on the Fedora directory if it doesn't exist. So the patch can be proposed upstream: it would no longer change the default behavior, only change the behavior if _bundled/ doesn't exist (which is never the case in upstream unmodified Python).

Upstream Lib/ensurepip/_bundled/ directory: https://github.com/python/cpython/tree/master/Lib/ensurepip/_bundled/

On Debian/Ubuntu, python3-ensurepip package is not installed by default.

Note: Previously, Fedora used a "rewheel" project, but this project caused other issues and so is no longer used in Fedora.

00251-change-user-install-location.patch

"Change user install location to /usr/local if executable is /usr/bin/python* and RPM build is not detected to make pip and distutils install into separate location."

=> Should be proposed upstream as a configure option.

Added by: https://src.fedoraproject.org/rpms/python3/c/332b947dfc8d0f0d3a4525864b121d0f239beb4d (2017-06-26)

00274-fix-arch-names.patch

"Upstream uses Debian-style architecture naming, change to match Fedora"

=> downstream only patch

Merged from several patches by: https://src.fedoraproject.org/rpms/python3/c/9423d36fb4847cc6117daea82490a188cc78ebdf (2017-08-31)

One of the originals added by: https://src.fedoraproject.org/rpms/python3/c/69d4e5d3533e4404ae7d42d537d29fd6861a8eae (2013-05-02)

00328-pyc-timestamp-invalidation-mode.patch

"Restore pyc to TIMESTAMP invalidation mode as default in rpmbuild"

=> downstream only patch

Patch related to PEP 552: Deterministic pycs implemented in Python 3.7.

Merged upstream

Made upstream by Victor Stinner:

Other:

History

  • python39:
    • 2020-03-05: 7 patches (Python 3.9.0a4)
    • 2020-02-17: 9 patches but 2 are backports (340 and 341), can be removed from next Python 3.9.0a4
  • python38:
    • 2019-06-19: 8 patches
    • 2019-04-23: 9 patches
    • 2019-02-07: 12 patches
    • 2018-11-08: 20 patches
  • python3 (currently Python 3.7):
    • 2019-04-02: 11 patches
    • 2019-03-07: 15 patches
    • 2018-07-12: 18 patches
    • 2018-05-10: 15 patches
  • python2 (Python 2.7):
    • 2019-05-17: 53 patches
    • 2019-03-07: 55 patches

Count patches::

   $ ls *.patch|wc -l
   55
   $ grep -c '^Patch[0-9]\+:' python*.spec
   55