This project is an unofficial fork of CPython sources used as staging area to maintain and test CPython patches.
Fixes and improvements to CPython should first be contributed upstream. The Python Developer’s Guide is a great resource to guide you through the process.
That said, there are few scenarios where maintaining CPython patches is relevant:
- When there is a need for a staging area for patches waiting to be integrated upstream. Doing so avoid each project to maintain their own set of patches.
- When the proposed patches are specific to a system not officially supported (e.g Android, Emscripten, ...).
- When generalizing proposed patches is definitively not feasible given the time and resources.
- When patches fix an older version of CPython (e.g. 2.7) so that it can be compiled using newer compiler (e.g VS2015).
-
- Fix build with GNU readline >= 6.3.
- Support for MinGW (building
socket
andctypes
modules is not supported).
Apply to 2.7.3 and 2.7.4
-
- Fix build with GNU readline >= 6.3.
- Support for MinGW (building
socket
andctypes
modules is not supported).
Apply to 2.7.5 and 2.7.6
-
- Support for VS2010 and VS2015.
- Support for MinGW (building
socket
andctypes
modules is not supported).
Apply to 2.7.11, 2.7.12 and 2.7.14
-
- Support for VS2010 and VS2015.
- Support for MinGW (building
socket
andctypes
modules is not supported).
-
- Rename header files found in
Modules/_decimal/libmpdec
directory to avoid conflicts with system headers of the same name (io.h
andmemory.h
). This script was originally used to update the sources: https://gist.github.com/jcfr/e166c0f3fd823de2586b1101f9c67947. - Apply to 3.5.x - Prevent duplicated
OverlappedType
symbols with built-in extension on Windows. - Apply to 3.5.x - Export inlined functions to support extension built-in on Windows. - Apply to 3.5.x
- Rename header files found in
-
- Rename header files found in
Modules/_decimal/libmpdec
directory to avoid conflicts with system headers of the same name (io.h
). This script was originally used to update the sources: https://gist.github.com/jcfr/e166c0f3fd823de2586b1101f9c67947. - Apply to 3.6.x - Prevent duplicated
OverlappedType
symbols with built-in extension on Windows. - Apply to 3.6.x - Export inlined functions to support extension built-in on Windows. - Apply to 3.6.x
- Rename header files found in
All software is licensed under the Apache 2.0 License. See LICENSE_Apache_20 file for details.
From the python.org wiki, the answer to the question What if I want to contribute my code to the PSF mentions that if code is going to end up in Python or the standard library, the PSF will require you to license code under "Academic Free License" or "Apache License 2.0".
Patches associated with a given branches are generated using the git format-patch
command and
added to the relevant sub-directories of the python-cmake-buildsystem
project. These are then
automatically applied are configuration time using the PythonApplyPatches CMake module.
Read more details at python-cmake-buildsystem/patches/README.rst.