meta/classes/meson.bbclass: Add inherit setuptools3

Submitted by Aníbal Limón on Dec. 3, 2019, 10:06 p.m. | Patch ID: 167613

Details

Message ID 20191203220624.26500-1-anibal.limon@linaro.org
State New
Headers show

Commit Message

Aníbal Limón Dec. 3, 2019, 10:06 p.m.
Fixes,

...
| Program python3 found: YES (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
|
| meson.build:36:0: ERROR: <ExternalProgram 'python3' -> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']> is not a valid python or it is missing setuptools
|
| A full log can be found at /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
| WARNING: exit code 1 from a shell command.
...

Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
---
 meta/classes/meson.bbclass | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
index efa6234078..90868963b7 100644
--- a/meta/classes/meson.bbclass
+++ b/meta/classes/meson.bbclass
@@ -1,4 +1,4 @@ 
-inherit siteinfo python3native
+inherit siteinfo python3native setuptools3
 
 DEPENDS_append = " meson-native ninja-native"
 

Comments

Khem Raj Dec. 3, 2019, 11:37 p.m.
On Tue, Dec 3, 2019 at 2:06 PM Aníbal Limón <anibal.limon@linaro.org> wrote:

> Fixes,
>
> ...
> | Program python3 found: YES
> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
> |
> | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
> is not a valid python or it is missing setuptools
> |
> | A full log can be found at
> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
> | WARNING: exit code 1 from a shell command.
> ...
>

I wonder if it’s better to add this inherit to waffle recipe alone I doubt
that all meson using recipes are building python modules


> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
> ---
>  meta/classes/meson.bbclass | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
> index efa6234078..90868963b7 100644
> --- a/meta/classes/meson.bbclass
> +++ b/meta/classes/meson.bbclass
> @@ -1,4 +1,4 @@
> -inherit siteinfo python3native
> +inherit siteinfo python3native setuptools3
>
>  DEPENDS_append = " meson-native ninja-native"
>
> --
> 2.24.0
>
>
Aníbal Limón Dec. 4, 2019, 2:35 a.m.
On Tue, 3 Dec 2019 at 17:37, Khem Raj <raj.khem@gmail.com> wrote:

>
>
> On Tue, Dec 3, 2019 at 2:06 PM Aníbal Limón <anibal.limon@linaro.org>
> wrote:
>
>> Fixes,
>>
>> ...
>> | Program python3 found: YES
>> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
>> |
>> | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
>> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
>> is not a valid python or it is missing setuptools
>> |
>> | A full log can be found at
>> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
>> | WARNING: exit code 1 from a shell command.
>> ...
>>
>
> I wonder if it’s better to add this inherit to waffle recipe alone I doubt
> that all meson using recipes are building python modules
>

This issue is triggered from waffle [1] but the actual meson code looks for
setuptools [2].

Anibal

[1] https://gitlab.freedesktop.org/mesa/waffle/blob/master/meson.build#L36
[2]
https://github.com/mesonbuild/meson/blob/master/mesonbuild/modules/python.py#L578


>
>
>> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
>> ---
>>  meta/classes/meson.bbclass | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
>> index efa6234078..90868963b7 100644
>> --- a/meta/classes/meson.bbclass
>> +++ b/meta/classes/meson.bbclass
>> @@ -1,4 +1,4 @@
>> -inherit siteinfo python3native
>> +inherit siteinfo python3native setuptools3
>>
>>  DEPENDS_append = " meson-native ninja-native"
>>
>> --
>> 2.24.0
>>
>>
Alexander Kanavin Dec. 4, 2019, 10:20 a.m.
I tend to agree with Khem; this change will pull in target python as build
and runtime dependency to all meson-using recipes, even those that have
nothing to do with python.

I'd suggest you fix the broken recipes individually by adding python3 to
DEPENDS. Yes, the "not a valid python" message is not helpful; suggestions
how to improve this are welcome.

Alex

On Wed, 4 Dec 2019 at 03:35, Anibal Limon <anibal.limon@linaro.org> wrote:

>
>
> On Tue, 3 Dec 2019 at 17:37, Khem Raj <raj.khem@gmail.com> wrote:
>
>>
>>
>> On Tue, Dec 3, 2019 at 2:06 PM Aníbal Limón <anibal.limon@linaro.org>
>> wrote:
>>
>>> Fixes,
>>>
>>> ...
>>> | Program python3 found: YES
>>> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
>>> |
>>> | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
>>> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
>>> is not a valid python or it is missing setuptools
>>> |
>>> | A full log can be found at
>>> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
>>> | WARNING: exit code 1 from a shell command.
>>> ...
>>>
>>
>> I wonder if it’s better to add this inherit to waffle recipe alone I
>> doubt that all meson using recipes are building python modules
>>
>
> This issue is triggered from waffle [1] but the actual meson code looks
> for setuptools [2].
>
> Anibal
>
> [1] https://gitlab.freedesktop.org/mesa/waffle/blob/master/meson.build#L36
> [2]
> https://github.com/mesonbuild/meson/blob/master/mesonbuild/modules/python.py#L578
>
>
>>
>>
>>> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
>>> ---
>>>  meta/classes/meson.bbclass | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
>>> index efa6234078..90868963b7 100644
>>> --- a/meta/classes/meson.bbclass
>>> +++ b/meta/classes/meson.bbclass
>>> @@ -1,4 +1,4 @@
>>> -inherit siteinfo python3native
>>> +inherit siteinfo python3native setuptools3
>>>
>>>  DEPENDS_append = " meson-native ninja-native"
>>>
>>> --
>>> 2.24.0
>>>
>>>
Aníbal Limón Dec. 4, 2019, 6:35 p.m.
On Wed, 4 Dec 2019 at 04:20, Alexander Kanavin <alex.kanavin@gmail.com>
wrote:

> I tend to agree with Khem; this change will pull in target python as build
> and runtime dependency to all meson-using recipes, even those that have
> nothing to do with python.
>

Ok, it depends on python3-setuptools-native I will add this inherit on
waffle recipe.

Regards,
Anibal


>
> I'd suggest you fix the broken recipes individually by adding python3 to
> DEPENDS. Yes, the "not a valid python" message is not helpful; suggestions
> how to improve this are welcome.
>
> Alex
>
> On Wed, 4 Dec 2019 at 03:35, Anibal Limon <anibal.limon@linaro.org> wrote:
>
>>
>>
>> On Tue, 3 Dec 2019 at 17:37, Khem Raj <raj.khem@gmail.com> wrote:
>>
>>>
>>>
>>> On Tue, Dec 3, 2019 at 2:06 PM Aníbal Limón <anibal.limon@linaro.org>
>>> wrote:
>>>
>>>> Fixes,
>>>>
>>>> ...
>>>> | Program python3 found: YES
>>>> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
>>>> |
>>>> | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
>>>> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
>>>> is not a valid python or it is missing setuptools
>>>> |
>>>> | A full log can be found at
>>>> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
>>>> | WARNING: exit code 1 from a shell command.
>>>> ...
>>>>
>>>
>>> I wonder if it’s better to add this inherit to waffle recipe alone I
>>> doubt that all meson using recipes are building python modules
>>>
>>
>> This issue is triggered from waffle [1] but the actual meson code looks
>> for setuptools [2].
>>
>> Anibal
>>
>> [1]
>> https://gitlab.freedesktop.org/mesa/waffle/blob/master/meson.build#L36
>> [2]
>> https://github.com/mesonbuild/meson/blob/master/mesonbuild/modules/python.py#L578
>>
>>
>>>
>>>
>>>> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
>>>> ---
>>>>  meta/classes/meson.bbclass | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
>>>> index efa6234078..90868963b7 100644
>>>> --- a/meta/classes/meson.bbclass
>>>> +++ b/meta/classes/meson.bbclass
>>>> @@ -1,4 +1,4 @@
>>>> -inherit siteinfo python3native
>>>> +inherit siteinfo python3native setuptools3
>>>>
>>>>  DEPENDS_append = " meson-native ninja-native"
>>>>
>>>> --
>>>> 2.24.0
>>>>
>>>>
Alexander Kanavin Dec. 4, 2019, 6:42 p.m.
On Wed, 4 Dec 2019 at 19:35, Anibal Limon <anibal.limon@linaro.org> wrote:

>
>
> On Wed, 4 Dec 2019 at 04:20, Alexander Kanavin <alex.kanavin@gmail.com>
> wrote:
>
>> I tend to agree with Khem; this change will pull in target python as
>> build and runtime dependency to all meson-using recipes, even those that
>> have nothing to do with python.
>>
>
> Ok, it depends on python3-setuptools-native I will add this inherit on
> waffle recipe.
>

Do test this change; I believe you actually need a dependency on target
python3.

Alex


> Regards,
> Anibal
>
>
>>
>> I'd suggest you fix the broken recipes individually by adding python3 to
>> DEPENDS. Yes, the "not a valid python" message is not helpful; suggestions
>> how to improve this are welcome.
>>
>> Alex
>>
>> On Wed, 4 Dec 2019 at 03:35, Anibal Limon <anibal.limon@linaro.org>
>> wrote:
>>
>>>
>>>
>>> On Tue, 3 Dec 2019 at 17:37, Khem Raj <raj.khem@gmail.com> wrote:
>>>
>>>>
>>>>
>>>> On Tue, Dec 3, 2019 at 2:06 PM Aníbal Limón <anibal.limon@linaro.org>
>>>> wrote:
>>>>
>>>>> Fixes,
>>>>>
>>>>> ...
>>>>> | Program python3 found: YES
>>>>> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
>>>>> |
>>>>> | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
>>>>> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
>>>>> is not a valid python or it is missing setuptools
>>>>> |
>>>>> | A full log can be found at
>>>>> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
>>>>> | WARNING: exit code 1 from a shell command.
>>>>> ...
>>>>>
>>>>
>>>> I wonder if it’s better to add this inherit to waffle recipe alone I
>>>> doubt that all meson using recipes are building python modules
>>>>
>>>
>>> This issue is triggered from waffle [1] but the actual meson code looks
>>> for setuptools [2].
>>>
>>> Anibal
>>>
>>> [1]
>>> https://gitlab.freedesktop.org/mesa/waffle/blob/master/meson.build#L36
>>> [2]
>>> https://github.com/mesonbuild/meson/blob/master/mesonbuild/modules/python.py#L578
>>>
>>>
>>>>
>>>>
>>>>> Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
>>>>> ---
>>>>>  meta/classes/meson.bbclass | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/meta/classes/meson.bbclass b/meta/classes/meson.bbclass
>>>>> index efa6234078..90868963b7 100644
>>>>> --- a/meta/classes/meson.bbclass
>>>>> +++ b/meta/classes/meson.bbclass
>>>>> @@ -1,4 +1,4 @@
>>>>> -inherit siteinfo python3native
>>>>> +inherit siteinfo python3native setuptools3
>>>>>
>>>>>  DEPENDS_append = " meson-native ninja-native"
>>>>>
>>>>> --
>>>>> 2.24.0
>>>>>
>>>>>
Ross Burton Dec. 4, 2019, 9:16 p.m.
On 04/12/2019 18:42, Alexander Kanavin wrote:
> On Wed, 4 Dec 2019 at 19:35, Anibal Limon <anibal.limon@linaro.org 
> <mailto:anibal.limon@linaro.org>> wrote:
> 
> 
> 
>     On Wed, 4 Dec 2019 at 04:20, Alexander Kanavin
>     <alex.kanavin@gmail.com <mailto:alex.kanavin@gmail.com>> wrote:
> 
>         I tend to agree with Khem; this change will pull in target
>         python as build and runtime dependency to all meson-using
>         recipes, even those that have nothing to do with python.
> 
> 
>     Ok, it depends on python3-setuptools-native I will add this inherit
>     on waffle recipe.
> 
> 
> Do test this change; I believe you actually need a dependency on target 
> python3.

I'd say that if the true dependency is just python3-setuptools-native, 
we can just add that to meson.bbclass as it's not really invasive.  If 
it was a target dependency that is different of course.

Ross
Khem Raj Dec. 4, 2019, 9:50 p.m.
On Wed, Dec 4, 2019 at 1:16 PM Ross Burton <ross.burton@intel.com> wrote:

> On 04/12/2019 18:42, Alexander Kanavin wrote:
> > On Wed, 4 Dec 2019 at 19:35, Anibal Limon <anibal.limon@linaro.org
> > <mailto:anibal.limon@linaro.org>> wrote:
> >
> >
> >
> >     On Wed, 4 Dec 2019 at 04:20, Alexander Kanavin
> >     <alex.kanavin@gmail.com <mailto:alex.kanavin@gmail.com>> wrote:
> >
> >         I tend to agree with Khem; this change will pull in target
> >         python as build and runtime dependency to all meson-using
> >         recipes, even those that have nothing to do with python.
> >
> >
> >     Ok, it depends on python3-setuptools-native I will add this inherit
> >     on waffle recipe.
> >
> >
> > Do test this change; I believe you actually need a dependency on target
> > python3.
>
> I'd say that if the true dependency is just python3-setuptools-native,
> we can just add that to meson.bbclass as it's not really invasive.  If
> it was a target dependency that is different of course.


I think so too late if meson is demanding for setup tools then it should be
in meson bbclass I was thinking that it’s a outlier but seems not

>
>
> Ross
>
>
Ross Burton Dec. 10, 2019, 1:44 p.m.
On 03/12/2019 22:06, Aníbal Limón wrote:
> +inherit siteinfo python3native setuptools3
>   
>   DEPENDS_append = " meson-native ninja-native"

Considering setuptools3 inherits distutil3 which adds a load of tasks, 
shouldn't this just be a DEPENDS += python3-setuptools3-native?

Ross
Khem Raj Dec. 10, 2019, 7:17 p.m.
On Tue, Dec 10, 2019 at 5:44 AM Ross Burton <ross.burton@intel.com> wrote:
>
> On 03/12/2019 22:06, Aníbal Limón wrote:
> > +inherit siteinfo python3native setuptools3
> >
> >   DEPENDS_append = " meson-native ninja-native"
>
> Considering setuptools3 inherits distutil3 which adds a load of tasks,
> shouldn't this just be a DEPENDS += python3-setuptools3-native?
>

right, we dont need the tasks so class is unnecessary

> Ross
Ross Burton Dec. 18, 2019, 8:31 p.m.
On 03/12/2019 22:06, Aníbal Limón wrote:
> Fixes,
> 
> ...
> | Program python3 found: YES (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
> |
> | meson.build:36:0: ERROR: <ExternalProgram 'python3' -> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']> is not a valid python or it is missing setuptools
> |
> | A full log can be found at /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
> | WARNING: exit code 1 from a shell command.

Going back to this...

Without this patch I get a different result:

Program python3 found: YES 
(/data/poky-tmp/master/work/corei7-64-poky-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
Run-time dependency threads found: YES
[ continues fine ]

So what is the meson-log.txt saying?

Ross
Aníbal Limón Jan. 8, 2020, 11:41 p.m.
On Wed, 18 Dec 2019 at 14:31, Ross Burton <ross.burton@intel.com> wrote:

> On 03/12/2019 22:06, Aníbal Limón wrote:
> > Fixes,
> >
> > ...
> > | Program python3 found: YES
> (/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
> > |
> > | meson.build:36:0: ERROR: <ExternalProgram 'python3' ->
> ['/home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3']>
> is not a valid python or it is missing setuptools
> > |
> > | A full log can be found at
> /home/anibal.limon/linaro/oe-rpb-master/build-410c/tmp-rpb-glibc/work/aarch64-linaro-linux/waffle/1.6.0-r0/build/meson-logs/meson-log.txt
> > | WARNING: exit code 1 from a shell command.
>
> Going back to this...
>
> Without this patch I get a different result:
>
> Program python3 found: YES
>
> (/data/poky-tmp/master/work/corei7-64-poky-linux/waffle/1.6.0-r0/recipe-sysroot-native/usr/bin/python3-native/python3)
> Run-time dependency threads found: YES
> [ continues fine ]
>
> So what is the meson-log.txt saying?
>

Hi,

I'm debugging this issue again and found the root cause that is missing
_sysconfigdata module, in python3-native.bbclass is set
(_PYTHON_SYSCONFIGDATA_NAME) and fails if no python3 isn't available so it
relais on python3 target being added.

Reviewing python3 recipe _sysconfig_data thera are two possible fixes,

- Copy _sysconfig_data from /usr/lib/python-sysconfig to /usr/lib/pythonVER
(I will go for this one)

...
+
+do_install_append_class-native() {
+       cp ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
${D}/${libdir}/python${PYTHON_MAJMIN}
+}
+
...

- Find right _sysconfig_data in python3native.bbclass because the library
name is based on os-machine.

Regards,
Anibal

>
> Ross
>