On 2/21/20 2:23 PM, Bruce Ashfield wrote:
On Fri, Feb 21, 2020 at 5:16 PM Khem Raj <raj.k...@gmail.com> wrote:



On 2/21/20 1:43 PM, Joshua Watt wrote:
On Thu, Feb 13, 2020 at 9:58 PM <zhe...@windriver.com> wrote:

From: He Zhe <zhe...@windriver.com>

To make the native python3 is always used,

- Use sed one-liner instead
- Add substitution for ${S}/scripts/bpf_helpers_doc.py to fix the
    following warning.

File "/usr/lib/python3.6/sysconfig.py", line 421, in _init_posix
_temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
ModuleNotFoundError: No module named '_sysconfigdata'

This issue is first reported by Joel Stanley <j...@jms.id.au>
The sed one-liner is credited to Anuj Mittal <anuj.mit...@intel.com>

Signed-off-by: He Zhe <zhe...@windriver.com>
---
   meta/recipes-kernel/perf/perf.bb | 7 ++-----
   1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 6d1b06693d..a6fb51d3db 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -239,11 +239,8 @@ do_configure_prepend () {
       fi

       # use /usr/bin/env instead of version specific python
-    for s in `find ${S}/tools/perf/ -name '*.py'`; do
-        sed -i 's,/usr/bin/python,/usr/bin/env python3,' "${s}"
-        sed -i 's,/usr/bin/python2,/usr/bin/env python3,' "${s}"
-        sed -i 's,/usr/bin/env python2,/usr/bin/env python3,' "${s}"
-        sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
+    for s in `find ${S}/tools/perf/ -name '*.py'` 
${S}/scripts/bpf_helpers_doc.py; do

Do we have to hard code bpf_helpers_doc.py? It doesn't exist in older
versions (e.g. 4.14) and causes do_configure to fail.

Probably not, I also stumbled into this problem.

Yah,

We can either just do the entire directory (but during the review, we
were talking about the fact that since we aren't using them, we don't
actually know if they are py3 safe, so blindly converting the shebang
isnt' a great idea either).

But the solution we use in the devsrc recipe would work easily enough
here, just do $(find . -name ${S}/scripts/bpf_helpers_doc.py) and let
it return nothing for those older kernels.

then perhaps its better to callout each script by name and check if that file exists, so older kernels can ignore that


Bruce



+        sed -i -e "s,#!.*python.*,#!${USRBINPATH}/env python3," ${s}
       done

       # unistd.h can be out of sync between libc-headers and the captured 
version in the perf source
--
2.24.1

--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core



--
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to