Instruct pip to use distutils
-----------------------------
The current version of pip uses distutils on Python < 3.10,
so this should change nothing,
but future versions of pip may theoretically change that.
Instruct pypa/distutils to add /local/ addition to prefix
---------------------------------------------------------
Needed for setuptools 60+ installed/upgraded by pip or when we update it in rawhide.
Setuptools 60+ uses bundled pypa/distutils instead of the standard library distutils.
Without $LD_LIBRARY_PATH, the test uses installed libpython,
which might be older Python version when updating
or missing entirely when building --with bootstrap.
The `dirname $0` breaks the script when it is linked to a different location,
for example the RHEL's /usr/libexec/platform-python-config.
The error handling was never reachable, failed exec ends the script.
See https://src.fedoraproject.org/rpms/python3.9/pull-request/38
We create an artificial Git repo to apply patches.
Python build system thinks that it's building from Git and embeds a bogus
branch name into its version string:
$ python3
Python 3.9.0b5 (heads/master-dirty:24c7f56, Aug 3 2020, 00:00:00)
[GCC 10.2.1 20200804 (Red Hat 10.2.1-2)] on linux
Type "help", "copyright", "credits" or "license" for more information.
Tell configure that Git is not installed. This reverts that part
of sys.version to "default".
Pythons in RHEL/Fedora use different names for some architectures
than upstream and other distros (for example ppc64 vs. powerpc64).
See patch 274.
That means that an extension built with the default upstream settings
(on other distro or as an manylinux wheel) cannot be found by Python
on RHEL/Fedora because it has a different suffix.
This patch adds the original names to importlib so Python is able
to import extensions with an original architecture name in its
file name.
This saves about 2 MiB from the package. When all rpms get extracted,
the comparison is as follows on an ext4 filesystem:
With this patch:
$ du -s usr
195828 usr/
Without this patch:
$ du -s usr
198224 usr/
Which is a difference of 2.396 MiB.
To reduce the filesystem footprint of the Python installation, some
files are now being removed and only one level of their pycache
(non-optimized) is being kept.
These particular files were chosen for their size and the fact that they
are autogenerated, thus hard to read.