All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 1/9] python3: bump to 3.5.1
Date: Tue, 17 May 2016 22:48:41 +0200	[thread overview]
Message-ID: <20160517224841.37ff98dd@free-electrons.com> (raw)
In-Reply-To: <1462133720-409-2-git-send-email-thomas.petazzoni@free-electrons.com>

Hello,

On Sun,  1 May 2016 22:15:12 +0200, Thomas Petazzoni wrote:
> 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>
> ---
> Changes since v2:
>  - Add Samuel Reviewed-by.
> Changes since v1:
>  - Remove the no longer useful --disable-pyo-build, as noticed by
>    Arnout.
>  - Fix the handling of *.opt-X.pyc files by simply getting rid of them
>    for the moment.
> ---
>  ...up.py-do-not-add-invalid-header-locations.patch |  6 +-
>  ...the-install-location-of-_sysconfigdata.py.patch | 18 ++---
>  ...he-build-of-pyc-and-pyo-files-conditional.patch | 78 ----------------------
>  ...3-Make-the-build-of-pyc-files-conditional.patch | 54 +++++++++++++++
>  ...gy_getaddrinfo-configure-test-when-cross-.patch |  6 +-
>  ...ructure-to-disable-the-build-of-certain-e.patch | 18 ++---
>  ...006-distutils-sysconfig-use-sysconfigdata.patch |  6 +-
>  ...ibrary-header-paths-for-cross-compilation.patch | 12 ++--
>  ...n-t-look-in-usr-lib-termcap-for-libraries.patch |  6 +-
>  .../python3/0009-Don-t-add-multiarch-paths.patch   |  6 +-
>  .../0010-Abort-on-failed-module-build.patch        | 10 +--
>  package/python3/0011-Serial-ioctl-workaround.patch |  2 +-
>  ...st-the-shebang-of-Python-scripts-for-cros.patch |  2 +-
>  ...-config.sh.in-ensure-sed-invocations-only.patch |  6 +-
>  ...-harcode-invalid-path-to-ncursesw-headers.patch |  6 +-
>  ...stem-locale-and-set-to-default-when-addin.patch |  6 +-
>  ...0016-Add-importlib-fix-for-PEP-3147-issue.patch | 69 +++++++++++--------
>  ...on-to-disable-installation-of-test-module.patch | 16 ++---
>  .../0018-Add-an-option-to-disable-pydoc.patch      | 20 +++---
>  .../0019-Add-an-option-to-disable-lib2to3.patch    | 22 +++---
>  ...-Add-option-to-disable-the-sqlite3-module.patch | 14 ++--
>  ...21-Add-an-option-to-disable-the-tk-module.patch | 18 ++---
>  ...dd-an-option-to-disable-the-curses-module.patch | 12 ++--
>  .../0023-Add-an-option-to-disable-expat.patch      | 16 ++---
>  .../0024-Add-an-option-to-disable-CJK-codecs.patch |  6 +-
>  .../0025-Add-an-option-to-disable-NIS.patch        |  6 +-
>  ...0026-Add-an-option-to-disable-unicodedata.patch |  6 +-
>  .../0027-Add-an-option-to-disable-IDLE.patch       | 18 ++---
>  .../0028-Add-an-option-to-disable-decimal.patch    | 10 +--
>  ...-option-to-disable-the-ossaudiodev-module.patch |  6 +-
>  ...N_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch | 62 +++++++++++++++++
>  package/python3/python3.hash                       |  6 +-
>  package/python3/python3.mk                         | 58 ++++++++--------
>  33 files changed, 333 insertions(+), 274 deletions(-)
>  delete mode 100644 package/python3/0003-Make-the-build-of-pyc-and-pyo-files-conditional.patch
>  create mode 100644 package/python3/0003-Make-the-build-of-pyc-files-conditional.patch
>  create mode 100644 package/python3/0030-Support-PGEN_FOR_BUILD-and-FREEZE_IMPORTLIB_FOR_BUIL.patch

Applied to next, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

  reply	other threads:[~2016-05-17 20:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-01 20:15 [Buildroot] [PATCH v3 0/9] Python3 bump to 3.5.1 and global byte-compilation Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 1/9] python3: bump to 3.5.1 Thomas Petazzoni
2016-05-17 20:48   ` Thomas Petazzoni [this message]
2016-05-01 20:15 ` [Buildroot] [PATCH v3 2/9] python: align the target finalize hooks with python3 Thomas Petazzoni
2016-05-17 20:48   ` Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 3/9] python: remove *.pyo files Thomas Petazzoni
2016-05-01 20:45   ` Samuel Martin
2016-05-17 20:49     ` Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 4/9] python-crossbar: fix byte-compilation of .pyc files Thomas Petazzoni
2016-05-01 20:46   ` Samuel Martin
2016-05-17 20:49   ` Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 5/9] python-pyftpdlib: fix byte-compilation with Python 3 Thomas Petazzoni
2016-05-01 20:47   ` Samuel Martin
2016-05-01 20:15 ` [Buildroot] [PATCH v3 6/9] python-pygame: bump version to fix Python 3 byte-compilation issue Thomas Petazzoni
2016-05-01 21:22   ` Samuel Martin
2016-05-01 21:49     ` Thomas Petazzoni
2016-05-17 20:51   ` Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 7/9] python-pexpect: fix byte-compilation with Python 2 Thomas Petazzoni
2016-05-01 20:48   ` Samuel Martin
2016-05-01 20:15 ` [Buildroot] [PATCH v3 8/9] python/python3: globalize *.pyc files compilation Thomas Petazzoni
2016-05-01 20:15 ` [Buildroot] [PATCH v3 9/9] samba4: remove compilation of .pyc files Thomas Petazzoni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160517224841.37ff98dd@free-electrons.com \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.