python3: bump to 3.5.1
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 1 May 2016 20:15:12 +0000 (22:15 +0200)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 17 May 2016 20:46:17 +0000 (22:46 +0200)
commit476f5fc8f6eba6ee44ce2e0812a1492609331f7d
treefb2bfb551a10f628f8ecfc20cb6f0f6297a891c0
parent61c8854cef2a41be3175bbf7f0992c31560a1dd7
python3: bump to 3.5.1

The major changes in terms of Buildroot packaging are:

 - Due to PEP488, Python no longer generates .pyc (unoptimized) and
   .pyo (optimized) byte-code files. Instead, it generates <foo>.pyc,
   <foo>.opt-1.pyc and <foo>.opt-2.pyc. Therefore, we removed the
   --disable-pyo-build option and kept only the --disable-pyc-build
   option, which completely disables building all .pyc files. In
   addition, since the optimized .opt-X.pyc files don't work if the
   corresponding un-optimized .pyc file is not present, we are for the
   moment unconditionally removing the optimized ones (keeping both
   the unoptimized and optimized ones doubles the required filesystem
   size!). So basically we preserve the behavior we had before this
   commit:

     BR2_PACKAGE_PYTHON3_PY_ONLY -> only *.py
     BR2_PACKAGE_PYTHON3_PYC_ONLY -> only non-optimized *.pyc
     BR2_PACKAGE_PYTHON3_PY_PYC -> both the *.py and non-optimized *.pyc

   To achieve this, the TARGET_FINALIZE_HOOKS are reworked:

    PYTHON3_REMOVE_PY_FILES is responsible for removing *.py files in
    the BR2_PACKAGE_PYTHON3_PYC_ONLY case.

    PYTHON3_REMOVE_PYC_FILES is responsible for removing *.pyc files
    in the BR2_PACKAGE_PYTHON3_PY_ONLY case.

    PYTHON3_REMOVE_OPTIMIZED_PYC_FILES is responsible for removing the
    optimized *.opt-1.pyc and *.opt-2.pyc files, which is done
    unconditionally.

 - The PEP3147 disabling patch had to be significantly reworked due to
   the code having changed heavily. The code was moved into a
   _bootstrap_external.py, which is a "frozen" Python module, i.e a
   module generated into a .h file at compile time using the
   _freeze_importlib program.

 - Due to the above, we now need to regenerate importlib.h at build
   time. Unfortunately, for the target Python _freeze_importlib is
   built for the target, so we can't run it on the build machine. To
   fix this, we copy the _freeze_importlib program from the
   host-python in $(HOST_DIR), and then patch the target python to use
   it. Since the same solution can be used for 'pgen', we do it, and
   avoid having to touch the graminit.{c,h} files.

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>
33 files changed:
package/python3/0001-setup.py-do-not-add-invalid-header-locations.patch
package/python3/0002-Change-the-install-location-of-_sysconfigdata.py.patch
package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch [deleted file]
package/python3/0003-Make-the-build-of-pyc-files-conditional.patch [new file with mode: 0644]
package/python3/0004-Disable-buggy_getaddrinfo-configure-test-when-cross-.patch
package/python3/0005-Add-infrastructure-to-disable-the-build-of-certain-e.patch
package/python3/0006-distutils-sysconfig-use-sysconfigdata.patch
package/python3/0007-Adjust-library-header-paths-for-cross-compilation.patch
package/python3/0008-Don-t-look-in-usr-lib-termcap-for-libraries.patch
package/python3/0009-Don-t-add-multiarch-paths.patch
package/python3/0010-Abort-on-failed-module-build.patch
package/python3/0011-Serial-ioctl-workaround.patch
package/python3/0012-Do-not-adjust-the-shebang-of-Python-scripts-for-cros.patch
package/python3/0013-Misc-python-config.sh.in-ensure-sed-invocations-only.patch
package/python3/0014-Do-not-harcode-invalid-path-to-ncursesw-headers.patch
package/python3/0015-Override-system-locale-and-set-to-default-when-addin.patch
package/python3/0016-Add-importlib-fix-for-PEP-3147-issue.patch
package/python3/0017-Add-an-option-to-disable-installation-of-test-module.patch
package/python3/0018-Add-an-option-to-disable-pydoc.patch
package/python3/0019-Add-an-option-to-disable-lib2to3.patch
package/python3/0020-Add-option-to-disable-the-sqlite3-module.patch
package/python3/0021-Add-an-option-to-disable-the-tk-module.patch
package/python3/0022-Add-an-option-to-disable-the-curses-module.patch
package/python3/0023-Add-an-option-to-disable-expat.patch
package/python3/0024-Add-an-option-to-disable-CJK-codecs.patch
package/python3/0025-Add-an-option-to-disable-NIS.patch
package/python3/0026-Add-an-option-to-disable-unicodedata.patch
package/python3/0027-Add-an-option-to-disable-IDLE.patch
package/python3/0028-Add-an-option-to-disable-decimal.patch
package/python3/0029-Add-an-option-to-disable-the-ossaudiodev-module.patch
package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch [new file with mode: 0644]
package/python3/python3.hash
package/python3/python3.mk