All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Korsgaard <peter@korsgaard.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v4 1/2] support/scripts/pycompile: fix .pyc original source file paths
Date: Tue, 15 Sep 2020 20:46:51 +0200	[thread overview]
Message-ID: <87o8m6swro.fsf@dell.be.48ers.dk> (raw)
In-Reply-To: <20200910083252.7102-2-robin.jarry@6wind.com> (Robin Jarry's message of "Thu, 10 Sep 2020 10:32:51 +0200")

>>>>> "Robin" == Robin Jarry <robin.jarry@6wind.com> writes:

 > When generating a .pyc file, the original .py source file path is
 > encoded in it. It is used for various purposes: traceback generation,
 > .pyc file comparison with its .py source, and code inspection.

 > By default, the source path used when invoking compileall is encoded in
 > the .pyc file. Since we use paths relative to TARGET_DIR, we end up with
 > paths that are only valid when relative to '/' encoded in the installed
 > .pyc files on the target.

 > This breaks code inspection at runtime since the original source path
 > will be invalid unless the code is executed from '/'.

 > Unfortunately, compileall cannot be forced to use the proper path. It
 > was not written with cross-compilation usage in mind.

 > Rework the script to call py_compile.compile() directly with pertinent
 > options:

 > - The script now has a new --strip-root argument. This argument is
 >   optional but will always be specified when compiling py files in
 >   buildroot.
 > - All other (non-optional) arguments are folders in which all
 >   "importable" .py files will be compiled to .pyc.
 > - Using --strip-root=$(TARGET_DIR), the future runtime path of each .py
 >   file is computed and encoded into the compiled .pyc.

 > No need to change directory before running the script anymore.

 > The trickery used to handle error reporting was only applicable with
 > compileall. Since we implement our own "compileall", error reporting
 > becomes trivial.

 > Signed-off-by: Julien Floret <julien.floret@6wind.com>
 > Signed-off-by: Robin Jarry <robin.jarry@6wind.com>

Committed to 2020.02.x, 2020.05.x and 2020.08.x, thanks.

-- 
Bye, Peter Korsgaard

  parent reply	other threads:[~2020-09-15 18:46 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-04 11:29 [Buildroot] [PATCH] pycompile: fix .pyc original source file paths Julien Floret
2020-09-04 21:26 ` Yann E. MORIN
2020-09-04 21:32   ` Yann E. MORIN
2020-09-08  8:10 ` [Buildroot] [PATCH v2 0/4] pycompile: fix .pyc source paths + improvements Robin Jarry
2020-09-08  8:10   ` [Buildroot] [PATCH v2 1/4] pycompile: add main entry point Robin Jarry
2020-09-08  8:10   ` [Buildroot] [PATCH v2 2/4] pycompile: sort imports Robin Jarry
2020-09-08  8:10   ` [Buildroot] [PATCH v2 3/4] pycompile: fix .pyc original source file paths Robin Jarry
2020-09-09 20:34     ` Yann E. MORIN
2020-09-10  7:29       ` Robin Jarry
2020-09-08  8:10   ` [Buildroot] [PATCH v2 4/4] pycompile: add --verbose option Robin Jarry
2020-09-09 20:47     ` Yann E. MORIN
2020-09-09 19:53   ` [Buildroot] [PATCH v2 0/4] pycompile: fix .pyc source paths + improvements Yann E. MORIN
2020-09-10  7:45 ` [Buildroot] [PATCH v3 0/2] " Robin Jarry
2020-09-10  7:45   ` [Buildroot] [PATCH v3 1/2] support/scripts/pycompile: fix .pyc original source file paths Robin Jarry
2020-09-10  7:53     ` Robin Jarry
2020-09-10  7:45   ` [Buildroot] [PATCH v3 2/2] support/scripts/pycompile: add --verbose option Robin Jarry
2020-09-10  8:32 ` [Buildroot] [PATCH v4 0/2] pycompile: fix .pyc source paths + improvements Robin Jarry
2020-09-10  8:32   ` [Buildroot] [PATCH v4 1/2] support/scripts/pycompile: fix .pyc original source file paths Robin Jarry
2020-09-11 21:15     ` Yann E. MORIN
2020-09-12 11:44       ` Robin Jarry
2020-09-13  8:10         ` Yann E. MORIN
2020-09-13  9:03     ` Yann E. MORIN
2020-09-14  7:33       ` Robin Jarry
2020-09-15 18:46     ` Peter Korsgaard [this message]
2020-09-10  8:32   ` [Buildroot] [PATCH v4 2/2] support/scripts/pycompile: add --verbose option Robin Jarry
2020-09-13  9:03     ` Yann E. MORIN

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=87o8m6swro.fsf@dell.be.48ers.dk \
    --to=peter@korsgaard.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.