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
- https://src.fedoraproject.org/rpms/python3.10/blob/master/f/python3.10.spec
- https://src.fedoraproject.org/rpms/python3.10/tree/master
- Tracking issue: https://bugzilla.redhat.com/show_bug.cgi?id=1287556
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
Added by: https://src.fedoraproject.org/rpms/python3/c/aa4aef22cccc56ab0e7957b45209502ec487cdb1 (2010-01-18)
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.
- Rationale: https://src.fedoraproject.org/rpms/redhat-rpm-config/pull-request/57#comment-27426
- Added by: https://src.fedoraproject.org/rpms/python3/c/9213c03924aeb612d1b754dbe0b4397782c6b3fb (2019-07-15)
- Need to run benchmarks to justify the downstream patch?
- Need to add a configure option to make it upstream
Merged upstream
Made upstream by Victor Stinner:
- 2021-01-20: 00189-use-rpm-wheels.patch
- 2020-03-10: 00102-lib64.patch
- 2019-05-17: 00178-dont-duplicate-flags-in-sysconfig.patch:
- https://src.fedoraproject.org/rpms/python3/c/7aab0ddc87c4c8476c8077800e765e52480fbc4d?branch=master Patch simply removed since it was invalid.
- https://bugs.python.org/issue17679 (rejected)
- 2019-05-09: 00200-gettext-plural-fix.patch (python-2.5.1-plural-fix.patch)
- 2019-03-15: 00168-distutils-cflags.patch
- https://github.com/python/cpython/commit/86082c22d23285995a32aabb491527c9f5629556 followed by other commits (see the issue)
- https://bugs.python.org/issue36235
- 2019-03-11: 00157-uid-gid-overflows.patch
- 2018-12-18: 00155-avoid-ctypes-thunks.patch: Remove ctypes callback workaround
- 2018-10-25: _PyObject_ASSERT(), Dave Malcolm's patch (2010):
- Multiple commits: see the issue
- https://bugs.python.org/issue9263
- 2018-10-17: "python -m cProfile -s" error message, Robert Kuska's patch (2015):
- 2018-10-16: 00190-gdb-py-bt-dont-raise-exception-from-eval.patch
- 2018-10-15: 00190-gdb-py-bt-dont-raise-exception-from-eval.patch
- 2017-02-10: 00153-fix-test_gdb-noise.patch
Other:
- 2018-01-29: 00294-define-TLS-cipher-suite-on-build-time.patch
- https://bugs.python.org/issue31429 made upstream by Christian Heimes
History
- python3.10:
- 2021-02-16: 4 patches (Python 3.10.0a5)
- 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