buildroot/package/python3
Yegor Yefremov 549bbba67f python/python3: globalize *.pyc files compilation
Currently, each python package (be it the python interpreter package
itself or external python modules) is responsible for compiling its
.py into .pyc files. Unfortunately, this is not ideal as some packages
only install .py files without compiling them into .pyc files. In this
case, if the Buildroot configuration specifies to keep only the .pyc
files, the .py files are removed and lost.

To address this, this commit changes the logic by making the
compilation of .pyc files a global operation: the python interpreter
packages register a target finalize hook that is in charge of
compiling all installed .py files.

The *.pyc generation on a per package basis is disabled in the
python-package infrastructure by passing the "--no-compile" option to
setup.py.

The *.pyc generation for the Python interpreter internal modules is
disabled through --disable-pyc-build configure option.

A small helper script is used to perform the compilation, the purpose
of this script is to abort the compilation process if one of the .py
file cannot be compiled. It has been provided by Samuel Martin and
integrated into this commit.

Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
Cc: Samuel Martin <s.martin49@gmail.com>
[Thomas:
 - rework for python 3.5
 - integrate Samuel proposal that allows to detect compilation
   failures.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2016-05-26 22:07:35 +02:00
..
0001-setup.py-do-not-add-invalid-header-locations.patch
0002-Change-the-install-location-of-_sysconfigdata.py.patch
0003-Make-the-build-of-pyc-files-conditional.patch
0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch
0006-distutils-sysconfig-use-sysconfigdata.patch
0007-Adjust-library-header-paths-for-cross-compilation.patch
0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch
0009-Don-t-add-multiarch-paths.patch
0010-Abort-on-failed-module-build.patch
0011-Serial-ioctl-workaround.patch
0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch
0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch
0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch
0015-Override-system-locale-and-set-to-default-when-addin.patch
0016-Add-importlib-fix-for-PEP-3147-issue.patch
0017-Add-an-option-to-disable-installation-of-test-module.patch
0018-Add-an-option-to-disable-pydoc.patch
0019-Add-an-option-to-disable-lib2to3.patch
0020-Add-option-to-disable-the-sqlite3-module.patch
0021-Add-an-option-to-disable-the-tk-module.patch
0022-Add-an-option-to-disable-the-curses-module.patch
0023-Add-an-option-to-disable-expat.patch
0024-Add-an-option-to-disable-CJK-codecs.patch
0025-Add-an-option-to-disable-NIS.patch
0026-Add-an-option-to-disable-unicodedata.patch
0027-Add-an-option-to-disable-IDLE.patch
0028-Add-an-option-to-disable-decimal.patch
0029-Add-an-option-to-disable-the-ossaudiodev-module.patch
0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch
Config.in
python3.hash
python3.mk python/python3: globalize *.pyc files compilation 2016-05-26 22:07:35 +02:00