[OE-core] [meta-oe][PATCH] itstool: Use python3 binary fom PATH instead of /usr/bin/python3

Khem Raj raj.khem at gmail.com
Fri Jul 26 21:35:01 UTC 2019


and send to oe-devel ml please

On Fri, Jul 26, 2019 at 11:50 AM Alexander Kanavin
<alex.kanavin at gmail.com> wrote:
>
> I think this should be fine, as long as you:
> 1. Modify the commit to fix the original place in the source code via a SRC_URI patch (instead of doing it after the fact with sed - such ad hoc patching is hard to read and understand).
> 2. Write a better description: we need to preserve explanations like this in commit history.
>
> Alex
>
> On Fri, 26 Jul 2019 at 21:31, Piotr Tworek <tworaz at tworaz.net> wrote:
>>
>> Hi Ross,
>>
>> Thanks for looking at my patch. You're right that my explanation behind
>> it is a wrong, I was a bit lazy there. Its not really about python3 not
>> being installed on the host system. My patch does fix a real issue with
>> itstool-native which is currently unusable. The main problem is we can't
>> mix host and OE provided python3 usage in one recipe. The problem I
>> found is that if  the recipe inherits python3native bbclass any use of
>> system provided python3 will fail. This seems to happen because
>> python3native bbclass exports
>> _PYTHON_SYSCONFIGDATA_NAME="_sysconfigdata". If I try to invoke host
>> python3 binary with this export it fails to start.complaining it can't
>> find module named _sysconfigdata.
>>
>> You might ask why nobody noticed it before. The explanation is pretty
>> simple. In meta-oe there are two recipes which depend on itstool-native.
>> Those are gnome-desktop3 and gnome-system-monitor. Both recipes inherit
>> meson class which in turn inherit python3native so in theory they should
>> fail. This does not happen because both recipes actually disable
>> document generation steps for which itstool is invoked.
>> Gnome-system-monitor has a patch for it while gnome-desktop3 has
>> desktop_docs=false in EXTRA_OEMESON. I haven't tried it yet, but with my
>> patch the document generation step should probably work fine in both
>> cases. This was the case for some other gnome related recipes which I
>> have in my own custom layer.
>>
>> Is there anything besides the explanation that is wrong with my patch?
>>
>> /ptw
>>
>> On 26/07/2019 17:57, Burton, Ross wrote:
>> > Considering:
>> >
>> > 1) bitbake is written in Python 3
>> > 2) HOSTTOOLS contains python3
>> >
>> > There *really* is a host python 3 binary, and the canonical path to it
>> > is ${HOSTTOOLS_DIR}/python3.
>> >
>> > Ross
>> >
>> > On Fri, 26 Jul 2019 at 16:40, Piotr Tworek <tworaz at tworaz.net> wrote:
>> >> Although /usr/bin/python3 works fine for class-target builds its not
>> >> really what we want for class-native. The host system might not even
>> >> have python3 installed. The native itstool version should use pythn3
>> >> provided in recipe-sysroot-native. To accomplish it modify the default
>> >> shebang to use /usr/bin/env. This works as expected for both native and
>> >> target builds.
>> >>
>> >> Signed-off-by: Piotr Tworek <tworaz at tworaz.net>
>> >> ---
>> >>   meta-oe/recipes-support/itstool/itstool_2.0.5.bb | 2 +-
>> >>   1 file changed, 1 insertion(+), 1 deletion(-)
>> >>
>> >> diff --git a/meta-oe/recipes-support/itstool/itstool_2.0.5.bb b/meta-oe/recipes-support/itstool/itstool_2.0.5.bb
>> >> index a0af44a71..f21e7f39b 100644
>> >> --- a/meta-oe/recipes-support/itstool/itstool_2.0.5.bb
>> >> +++ b/meta-oe/recipes-support/itstool/itstool_2.0.5.bb
>> >> @@ -13,7 +13,7 @@ SRC_URI[sha256sum] = "100506f8df62cca6225ec3e631a8237e9c04650c77495af4919ac6a100
>> >>
>> >>   do_install_append() {
>> >>       # fix shebang of main script
>> >> -    sed -i 's:^#!${WORKDIR}.*${PYTHON_PN} -s:#!${bindir_native}/${PYTHON_PN} -s:' ${D}${bindir}/itstool
>> >> +    sed -i 's:^#!${WORKDIR}.*${PYTHON_PN} -s:#!${bindir_native}/env -S ${PYTHON_PN} -s:' ${D}${bindir}/itstool
>> >>   }
>> >>
>> >>   BBCLASSEXTEND = "native"
>> >> --
>> >> 2.21.0
>> >>
>> >> --
>> >> _______________________________________________
>> >> Openembedded-core mailing list
>> >> Openembedded-core at lists.openembedded.org
>> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>> --
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


More information about the Openembedded-core mailing list