Re: [OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread He Zhe
Thanks for your input.

Since the old one doesn't make it to next branch and the thread hasn't had 
following replies, I'll send v2 as a summary.

Zhe

On 2/14/20 4:45 AM, Bruce Ashfield wrote:
> On Thu, Feb 13, 2020 at 1:39 PM  wrote:
>> From: He Zhe 
>>
>> To make the native python3 are always used,
>>
>> - Move the substitution of /usr/bin/python3 to first, otherwise the
>>   possible original /usr/bin/python3 would be changed to
>>   /usr/bin/env python33.
>> - Add substitution for ${S}/scripts/
>>
>> Signed-off-by: He Zhe 
>> ---
>>  meta/recipes-kernel/perf/perf.bb | 7 +++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/meta/recipes-kernel/perf/perf.bb 
>> b/meta/recipes-kernel/perf/perf.bb
>> index 6d1b066..14a9090 100644
>> --- a/meta/recipes-kernel/perf/perf.bb
>> +++ b/meta/recipes-kernel/perf/perf.bb
>> @@ -240,10 +240,17 @@ do_configure_prepend () {
>>
>>  # use /usr/bin/env instead of version specific python
>>  for s in `find ${S}/tools/perf/ -name '*.py'`; do
>> +sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
> Rather than messing around with the order of these, we should just
> combine them into a single sed invocation. When I started those
> substitutions, there weren't so many.
>
> As was mentioned in the other perf patch  and review:
>
> sed -i -e "1s,#!.*python.*,#!${USRBINPATH}/env python3," ${s}
>
> or some variant of the regex should fix them all.
>
>>  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}"
>> +done
>> +
>> +for s in `find ${S}/scripts/ -name '*.py'`; do
> It would be better to not have two loops doing the same thing, why not
> combine the two ? In the other review, the single script that was
> causing the problem was specifically pointed out .. and while I also
> agree that we can just substitute them all, technically, if we haven't
> run them, we don't know they are py3 safe.
>
> But minimally, getting them into a single for loop is something we
> should do (also part of that other patch/review).
>
> Bruce
>
>>  sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
>> +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}"
>>  done
>>
>>  # unistd.h can be out of sync between libc-headers and the captured 
>> version in the perf source
>> --
>> 2.7.4
>>
>> --
>> ___
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II

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


Re: [OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread Bruce Ashfield
On Thu, Feb 13, 2020 at 1:39 PM  wrote:
>
> From: He Zhe 
>
> To make the native python3 are always used,
>
> - Move the substitution of /usr/bin/python3 to first, otherwise the
>   possible original /usr/bin/python3 would be changed to
>   /usr/bin/env python33.
> - Add substitution for ${S}/scripts/
>
> Signed-off-by: He Zhe 
> ---
>  meta/recipes-kernel/perf/perf.bb | 7 +++
>  1 file changed, 7 insertions(+)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb 
> b/meta/recipes-kernel/perf/perf.bb
> index 6d1b066..14a9090 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -240,10 +240,17 @@ do_configure_prepend () {
>
>  # use /usr/bin/env instead of version specific python
>  for s in `find ${S}/tools/perf/ -name '*.py'`; do
> +sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"

Rather than messing around with the order of these, we should just
combine them into a single sed invocation. When I started those
substitutions, there weren't so many.

As was mentioned in the other perf patch  and review:

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

or some variant of the regex should fix them all.

>  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}"
> +done
> +
> +for s in `find ${S}/scripts/ -name '*.py'`; do

It would be better to not have two loops doing the same thing, why not
combine the two ? In the other review, the single script that was
causing the problem was specifically pointed out .. and while I also
agree that we can just substitute them all, technically, if we haven't
run them, we don't know they are py3 safe.

But minimally, getting them into a single for loop is something we
should do (also part of that other patch/review).

Bruce

>  sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
> +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}"
>  done
>
>  # unistd.h can be out of sync between libc-headers and the captured 
> version in the perf source
> --
> 2.7.4
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread Scott Branden via Openembedded-core




On 2020-02-13 11:45 a.m., Bruce Ashfield wrote:

On Thu, Feb 13, 2020 at 1:39 PM  wrote:

From: He Zhe 

To make the native python3 are always used,


FWIW, a very similar patch was sent 10 days ago. Did you confirm that it isn't
in master-next already ?

It's not in master-next as far as I can tell.


see: "[OE-core] [PATCH] perf: Additional fixes for 5.5+"

Bruce


- Move the substitution of /usr/bin/python3 to first, otherwise the
   possible original /usr/bin/python3 would be changed to
   /usr/bin/env python33.
- Add substitution for ${S}/scripts/

Signed-off-by: He Zhe 
---
  meta/recipes-kernel/perf/perf.bb | 7 +++
  1 file changed, 7 insertions(+)

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 6d1b066..14a9090 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -240,10 +240,17 @@ do_configure_prepend () {

  # use /usr/bin/env instead of version specific python
  for s in `find ${S}/tools/perf/ -name '*.py'`; do
+sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
  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}"
+done
+
+for s in `find ${S}/scripts/ -name '*.py'`; do
  sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
+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}"
  done

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

--
___
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


Re: [OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread Bruce Ashfield
On Thu, Feb 13, 2020 at 1:39 PM  wrote:
>
> From: He Zhe 
>
> To make the native python3 are always used,
>

FWIW, a very similar patch was sent 10 days ago. Did you confirm that it isn't
in master-next already ?

see: "[OE-core] [PATCH] perf: Additional fixes for 5.5+"

Bruce

> - Move the substitution of /usr/bin/python3 to first, otherwise the
>   possible original /usr/bin/python3 would be changed to
>   /usr/bin/env python33.
> - Add substitution for ${S}/scripts/
>
> Signed-off-by: He Zhe 
> ---
>  meta/recipes-kernel/perf/perf.bb | 7 +++
>  1 file changed, 7 insertions(+)
>
> diff --git a/meta/recipes-kernel/perf/perf.bb 
> b/meta/recipes-kernel/perf/perf.bb
> index 6d1b066..14a9090 100644
> --- a/meta/recipes-kernel/perf/perf.bb
> +++ b/meta/recipes-kernel/perf/perf.bb
> @@ -240,10 +240,17 @@ do_configure_prepend () {
>
>  # use /usr/bin/env instead of version specific python
>  for s in `find ${S}/tools/perf/ -name '*.py'`; do
> +sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
>  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}"
> +done
> +
> +for s in `find ${S}/scripts/ -name '*.py'`; do
>  sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
> +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}"
>  done
>
>  # unistd.h can be out of sync between libc-headers and the captured 
> version in the perf source
> --
> 2.7.4
>
> --
> ___
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


Re: [OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread Scott Branden via Openembedded-core

Thank you - works for me.  I've been waiting for a fix!

On 2020-02-13 10:38 a.m., zhe...@windriver.com wrote:

From: He Zhe 

To make the native python3 are always used,

- Move the substitution of /usr/bin/python3 to first, otherwise the
   possible original /usr/bin/python3 would be changed to
   /usr/bin/env python33.
- Add substitution for ${S}/scripts/

Signed-off-by: He Zhe 

Tested-by: Scott Branden 

---
  meta/recipes-kernel/perf/perf.bb | 7 +++
  1 file changed, 7 insertions(+)

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 6d1b066..14a9090 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -240,10 +240,17 @@ do_configure_prepend () {
  
  # use /usr/bin/env instead of version specific python

  for s in `find ${S}/tools/perf/ -name '*.py'`; do
+sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
  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}"
+done
+
+for s in `find ${S}/scripts/ -name '*.py'`; do
  sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
+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}"
  done
  
  # unistd.h can be out of sync between libc-headers and the captured version in the perf source


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


[OE-core] [PATCH] perf: Correct the substitution of python shebangs

2020-02-13 Thread zhe.he
From: He Zhe 

To make the native python3 are always used,

- Move the substitution of /usr/bin/python3 to first, otherwise the
  possible original /usr/bin/python3 would be changed to
  /usr/bin/env python33.
- Add substitution for ${S}/scripts/

Signed-off-by: He Zhe 
---
 meta/recipes-kernel/perf/perf.bb | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/meta/recipes-kernel/perf/perf.bb b/meta/recipes-kernel/perf/perf.bb
index 6d1b066..14a9090 100644
--- a/meta/recipes-kernel/perf/perf.bb
+++ b/meta/recipes-kernel/perf/perf.bb
@@ -240,10 +240,17 @@ do_configure_prepend () {
 
 # use /usr/bin/env instead of version specific python
 for s in `find ${S}/tools/perf/ -name '*.py'`; do
+sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
 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}"
+done
+
+for s in `find ${S}/scripts/ -name '*.py'`; do
 sed -i 's,/usr/bin/python3,/usr/bin/env python3,' "${s}"
+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}"
 done
 
 # unistd.h can be out of sync between libc-headers and the captured 
version in the perf source
-- 
2.7.4

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