Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 1/1] python3: add patch to fix PEP 3147 issue with automake built packages
Date: Sat, 29 Aug 2015 14:06:35 +0200	[thread overview]
Message-ID: <20150829140635.1495affc@trantor> (raw)
In-Reply-To: <20150828193643.10876a0f@free-electrons.com>

Hi Thomas,

On Fri, 28 Aug 2015 19:36:43 +0200, Thomas Petazzoni wrote :
> On Fri, 28 Aug 2015 16:58:41 +0200, Christophe Vu-Brugier wrote:
> > Packages built with automake use a `py-compile` helper to
> > byte-compile Python source files. This script uses the "py_compile"
> > module from the standard library. In turn, the compile() function
> > in the "py_compile" module invokes the cache_from_source() function
> > provided by importlib.
> > 
> > This patch changes cache_from_source() and source_from_cache() in
> > importlib to get rid of the "__pycache__" directory.
> > 
> > This fixes the following import error in kmod when the module is
> > built for Python 3:
> > 
> >   >>> from kmod import Kmod
> >   Traceback (most recent call last):
> >     File "<stdin>", line 1, in <module>
> >   ImportError: cannot import name 'Kmod'
> > 
> > Signed-off-by: Christophe Vu-Brugier <cvubrugier@fastmail.fm>
> 
> Thanks for this patch. However, I'm wondering if it doesn't make the
> existing patch 016-distutils-no-pep3147.patch unnecessary. Patch 016
> fixes the distutils/setuptools case by preventing the logic from
> calling importlib.util.cache_from_source(). But since you're fixing
> this function in your patch, maybe there's no need for the 016 patch
> anymore ? What about patch 004 ?
> 
> Could you do some quick testing without patches 004 and 016, and see
> if 1/ the Python standard library is byte-compiled without __pycache__
> folders and 2/ same for Python external modules built with distutils
> and setuptools.
> 
> I'm pretty sure with your patch we can remove patch 016 (so your patch
> could replace it). I'm not sure about patch 004, though.

Indeed, patch 016 for distutils / setuptools is no longer necessary.
Moreover, patch 004 for the standard library can be dropped as well.
Afer removing patches 004 and 016, I see no __pycache__ directory in the
Python path and the interpreter behaves as expected (I tested by loading
modules and running samples for readline, urwid, six, kmod or
pyparsing).

I will respin my patch to drop 004 and 016 and update 005 which is
impacted by the removal of 004.

Thank you !

-- 
Christophe Vu-Brugier

  reply	other threads:[~2015-08-29 12:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-28 14:58 [Buildroot] [PATCH 1/1] python3: add patch to fix PEP 3147 issue with automake built packages Christophe Vu-Brugier
2015-08-28 17:36 ` Thomas Petazzoni
2015-08-29 12:06   ` Christophe Vu-Brugier [this message]
2015-08-29 12:50     ` 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=20150829140635.1495affc@trantor \
    --to=cvubrugier@fastmail.fm \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox