Then you will need space in:
EXTRA_PYTHON_DEPENDS_append_class-target = " python3"
as well.

I don't expect EXTRA_PYTHON_DEPENDS to be often (if at all) outside the bbclass, but IMHO it's good convention to just use leading space wherever you append to space separated list (less surprises for people who might eventually set something like EXTRA_PYTHON_DEPENDS in their recipes - even from wrong reasons).

On Tue, Nov 17, 2020 at 9:18 PM Jose Quaresma <quaresma.jose@gmail.com> wrote:
Martin,

you're right. if EXTRA_PYTHON_DEPENDS is set outside of the bbclass it
break the DEPENDS.

Sorry Khem for my suggestion, your initial was right.

+EXTRA_PYTHON_DEPENDS_class-target = "python3"
+DEPENDS_append = " ${EXTRA_PYTHON_DEPENDS}"

But in this case (when EXTRA_PYTHON_DEPENDS is set outside of the bbclass)
it will don't have any effect for the overwrite class-target because
EXTRA_PYTHON_DEPENDS_class-target="python3" always will set
EXTRA_PYTHON_DEPENDS="python3"

I think I have see another problem now and something like this is better:

+EXTRA_PYTHON_DEPENDS_append_class-target = "python3"
+DEPENDS_append = " ${EXTRA_PYTHON_DEPENDS}"

Martin Jansa <martin.jansa@gmail.com> escreveu no dia terça,
17/11/2020 à(s) 19:56:
>
> I don't mind this change, but why do you think space in the variable is better in this case (where we don't mind extra space being added for native/nativesdk case?)
>
> If someone sets EXTRA_PYTHON_DEPENDS = "foo" for whatever reason in some recipe, then the space will be missing.
>
> On Tue, Nov 17, 2020 at 7:36 PM Jose Quaresma <quaresma.jose@gmail.com> wrote:
>>
>> Khem Raj <raj.khem@gmail.com> escreveu no dia terça, 17/11/2020 à(s) 18:04:
>> >
>> > python3targetconfig append target python3 to dependencies
>> > unconditionally, and here its inherited unconditionally too but
>> > distutils3-base is inherited in BBCLASSEXTEND'ed recipes and other not-target
>> > recipes as well. Hence the change added via 9c8f666097802cb594a759989edcf01603a22df3
>> > is now bridging the native dependencies with target python3 and thats
>> > resulting all sorts of rebuilds for multimachine builds e.g.
>> >
>> > MACHINE=qemuarm bitbake python3-scons-native
>> > MACHINE=qemumips bitbake python3-scons-native
>> >
>> > results in rebuilds for python3-scons-native
>> >
>> > bitbake-diffsigs shows
>> >
>> > Hash for dependent task python/python3-scons-native_3.1.2.bb:do_populate_sysroot changed from 1cdb93193b416477df6faa137e83a967b433c7aa29033146b405153f73f36933 to 3cea1e7cbedd121ecb768fbc291cc4e4d7d3b5c0442897
>> > 0e3b97bd058d162065
>> >     Hash for dependent task python/python3-scons-native_3.1.2.bb:do_install changed from 8d6018fd03ffc6060a04532dc39a5b7ccca1be026a69d069cb4fb11aef86dd89 to c5f1d173596a8e910f45a2b6e0b4dab96cd0102be4d62bd3156
>> > 229cb0f5ebb11
>> >         Hash for dependent task python/python3-scons-native_3.1.2.bb:do_compile changed from e3ee4b52a15267e6ae7853ec19a666b2fb62608a597608793336382d1c45f8a0 to 1e582043dfe6b3e00aaa532f363ce6afb37652abe837dac
>> > 7cc9769194c43eae1
>> >             Hash for dependent task python/python3-scons-native_3.1.2.bb:do_configure changed from 770a4d5a77a96ebd9e1e7368f710bca3f88e3b1266dffa3b2d0360b1e3a81e27 to a366982778b03eee5165c3117ee778f848acdfaa2
>> > b346650fbdf114ac70ab57b
>> >                 Hash for dependent task python/python3-scons-native_3.1.2.bb:do_prepare_recipe_sysroot changed from 958910037856ff5d5eb2b5162b3cdd02a3a710fc543b933cfeba771ee095cb72 to 474333fb565f908992fd3716
>> > 4935aaecf31a79e867826fe634cde4f44171d8e7
>> >                     Hash for dependent task python/python3_3.9.0.bb:do_populate_sysroot changed from 7ac1c4fcbb2eacf98d2c32d991751bd2f3c7d55e2e32f2c9e485e7f5975fecf8 to 25dcfe74a95af19cce8df7c29311cc5edbbf6ad
>> > 08777e46a6fa6e417c0445018
>> >
>> > ...
>> >
>> > Therefore limit effects of this class only for target recipes.
>> >
>> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> > Cc: Alexander Kanavin <alex.kanavin@gmail.com>
>> > Cc: Martin Jansa <Martin.Jansa@gmail.com>
>> > ---
>> > v2: Mark depends conditional instead
>> > v3: Export _PYTHON_SYSCONFIGDATA_NAME only for target
>> >     and mark tasks with target override
>> >
>> >  meta/classes/python3targetconfig.bbclass | 10 ++++++----
>> >  1 file changed, 6 insertions(+), 4 deletions(-)
>> >
>> > diff --git a/meta/classes/python3targetconfig.bbclass b/meta/classes/python3targetconfig.bbclass
>> > index 640d0c97b6..fc1025c207 100644
>> > --- a/meta/classes/python3targetconfig.bbclass
>> > +++ b/meta/classes/python3targetconfig.bbclass
>> > @@ -1,15 +1,17 @@
>> >  inherit python3native
>> >
>> > -DEPENDS_append = " python3"
>> > +EXTRA_PYTHON_DEPENDS ?= ""
>> > +EXTRA_PYTHON_DEPENDS_class-target = "python3"
>> > +DEPENDS_append = " ${EXTRA_PYTHON_DEPENDS}"
>>
>> -EXTRA_PYTHON_DEPENDS_class-target = "python3"
>> -DEPENDS_append = " ${EXTRA_PYTHON_DEPENDS}"
>> +EXTRA_PYTHON_DEPENDS_class-target = " python3"
>> +DEPENDS_append = "${EXTRA_PYTHON_DEPENDS}"
>>
>> add a space before python3 is better than always add it to DEPENDS
>>
>> >
>> > -do_configure_prepend() {
>> > +do_configure_prepend_class-target() {
>> >          export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
>> >  }
>> >
>> > -do_compile_prepend() {
>> > +do_compile_prepend_class-target() {
>> >          export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
>> >  }
>> >
>> > -do_install_prepend() {
>> > +do_install_prepend_class-target() {
>> >          export _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata"
>> >  }
>> > --
>> > 2.29.2
>> >
>> >
>> >
>>
>>
>> --
>> best regards,
>> José Quaresma



--
best regards,
José Quaresma