Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Richard Purdie
On Thu, 2024-05-02 at 08:39 -0500, Patrick Williams wrote:
> On Thu, May 02, 2024 at 03:34:43PM +0200, Alexander Kanavin wrote:
> > On Thu, 2 May 2024 at 15:06, Patrick Williams  wrote:
> > 
> > > This is almost never correct and there is not a single example of it in
> > > poky.  There _are_ examples of exactly what I wrote.
> > > 
> > > If you do `PACKAGECONFIG:class-target:remove` and there is not already
> > > an explicit `PACKAGECONFIG:class-target` defined, this in effect creates
> > > a _new_ _empty_ variable `PACKAGECONFIG:class-target`.  This is nearly
> > > never what you want.  You typically want to take the base contents of
> > > `PACAKGECONFIG` and remove something from it explicitly for the
> > > `class-target` class.  What I wrote is exactly how to do that and what
> > > there are multiple examples of in poky (see tclibc-barmetal.inc,
> > > no-gplv3.inc, meta-openembedded uim_1.8.8.bb).
> > 
> > Right, I just reproduced this. To me this looks like conditions in
> > inherit_defer operate on PACKAGECONFIG value that is assembled without
> > considering class overrides, and that might be a bug.
> 
> Worse is that it seems to always operate on the `class-target`
> overrides.  It is as if, at the point that `inherit_defer` evaluates, it
> is not known if it is a native or target class and so the default
> `CLASSOVERRIDE` from base.bbclass takes precedence over what comes from
> native.bbclass.
> 
> > 
> > How to see the issue:
> > PACKAGECONFIG:remove:class-target:pn-btrfs-tools = "python"
> > 
> > bitbake btrfs-tools-native
> > 
> > You might be able to work around this by avoiding :remove and setting
> > PACKAGECONFIG directly.

It is an ordering issue.

The trouble is that class-native comes from native.bbclass which is a
BBCLASSEXTEND. The class extension code happens right at the end of
parsing (for obvious reasons) and this is after inherit_defer is
evaluated.

So it is a rather horrible side effect of how the class overrides work.
Sadly inline python like this is difficult to defer indefinitely and is
why immediate expansion is generall painful and a bad idea :(

I'm not entirely sure we can fix that.

Cheers,

Richard






-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198924): 
https://lists.openembedded.org/g/openembedded-core/message/198924
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Patrick Williams
On Thu, May 02, 2024 at 03:34:43PM +0200, Alexander Kanavin wrote:
> On Thu, 2 May 2024 at 15:06, Patrick Williams  wrote:
> 
> > This is almost never correct and there is not a single example of it in
> > poky.  There _are_ examples of exactly what I wrote.
> >
> > If you do `PACKAGECONFIG:class-target:remove` and there is not already
> > an explicit `PACKAGECONFIG:class-target` defined, this in effect creates
> > a _new_ _empty_ variable `PACKAGECONFIG:class-target`.  This is nearly
> > never what you want.  You typically want to take the base contents of
> > `PACAKGECONFIG` and remove something from it explicitly for the
> > `class-target` class.  What I wrote is exactly how to do that and what
> > there are multiple examples of in poky (see tclibc-barmetal.inc,
> > no-gplv3.inc, meta-openembedded uim_1.8.8.bb).
> 
> Right, I just reproduced this. To me this looks like conditions in
> inherit_defer operate on PACKAGECONFIG value that is assembled without
> considering class overrides, and that might be a bug.

Worse is that it seems to always operate on the `class-target`
overrides.  It is as if, at the point that `inherit_defer` evaluates, it
is not known if it is a native or target class and so the default
`CLASSOVERRIDE` from base.bbclass takes precedence over what comes from
native.bbclass.

> 
> How to see the issue:
> PACKAGECONFIG:remove:class-target:pn-btrfs-tools = "python"
> 
> bitbake btrfs-tools-native
> 
> You might be able to work around this by avoiding :remove and setting
> PACKAGECONFIG directly.
> 
> Alex

-- 
Patrick Williams


signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198923): 
https://lists.openembedded.org/g/openembedded-core/message/198923
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Patrick Williams
On Thu, May 02, 2024 at 02:57:30PM +0200, Alexander Kanavin wrote:
> On Thu, 2 May 2024 at 14:52, Patrick Williams  wrote:
> 
> > I'm not convinced this is true.  As I wrote, the final result of
> > PACKAGECONFIG is exactly what I expect; it includes `python` for the
> > btrfs-tools-native and doesn't for the plain btrfs-tools:
> 
> Run experiments with plain poky and changes in local.conf, and that
> will convince you.
> 

Done.  This is with the latest poky and crops/poky docker container.

1. PACKAGECONFIG:remove:pn-btrfs-tools = "python"

bitbake -ne btrfs-tools-native results:
PACKAGECONFIG=" programs convert python crypto-builtin "

bitbake -ne btrfs-tools results:
PACKAGECONFIG=" programs convert  crypto-builtin  "

2. PACKAGECONFIG:remove:pn-btrfs-tools-native = "python"

bitbake -ne btrfs-tools-native results:
PACKAGECONFIG=" programs convert  crypto-builtin "

bitbake -ne btrfs-tools results:
PACKAGECONFIG=" programs convert python crypto-builtin  "

These are the exact same results I am seeing with our openbmc tree and
exactly what is expected to me.  Still, `inherit_defer` gets the
incorrect evaluation results.

-- 
Patrick Williams


signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198922): 
https://lists.openembedded.org/g/openembedded-core/message/198922
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Alexander Kanavin
On Thu, 2 May 2024 at 15:06, Patrick Williams  wrote:

> This is almost never correct and there is not a single example of it in
> poky.  There _are_ examples of exactly what I wrote.
>
> If you do `PACKAGECONFIG:class-target:remove` and there is not already
> an explicit `PACKAGECONFIG:class-target` defined, this in effect creates
> a _new_ _empty_ variable `PACKAGECONFIG:class-target`.  This is nearly
> never what you want.  You typically want to take the base contents of
> `PACAKGECONFIG` and remove something from it explicitly for the
> `class-target` class.  What I wrote is exactly how to do that and what
> there are multiple examples of in poky (see tclibc-barmetal.inc,
> no-gplv3.inc, meta-openembedded uim_1.8.8.bb).

Right, I just reproduced this. To me this looks like conditions in
inherit_defer operate on PACKAGECONFIG value that is assembled without
considering class overrides, and that might be a bug.

How to see the issue:
PACKAGECONFIG:remove:class-target:pn-btrfs-tools = "python"

bitbake btrfs-tools-native

You might be able to work around this by avoiding :remove and setting
PACKAGECONFIG directly.

Alex

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198921): 
https://lists.openembedded.org/g/openembedded-core/message/198921
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Patrick Williams
On Thu, May 02, 2024 at 02:57:30PM +0200, Alexander Kanavin wrote:
> On Thu, 2 May 2024 at 14:52, Patrick Williams  wrote:
> 
> > I'm not convinced this is true.  As I wrote, the final result of
> > PACKAGECONFIG is exactly what I expect; it includes `python` for the
> > btrfs-tools-native and doesn't for the plain btrfs-tools:
> >
> > ```
> > # pre-expansion value:
> > #   " programs convert python crypto-builtin "
> > PACKAGECONFIG=" programs convert python crypto-builtin "
> > ```
> 
> Run experiments with plain poky and changes in local.conf, and that
> will convince you.
> 
> > I've also tried switching to this, which is very clearly a "target"
> > qualifier and have the same exact results; it applies on "native"
> > `inherit_defer` evaluations:
> >
> > btrfs-tools_%.bbappend with...
> > ```
> > PACKAGECONFIG:remove:class-target = "python"
> > ```
> 
> class-target:remove, not the other way around.

This is almost never correct and there is not a single example of it in
poky.  There _are_ examples of exactly what I wrote.

If you do `PACKAGECONFIG:class-target:remove` and there is not already
an explicit `PACKAGECONFIG:class-target` defined, this in effect creates
a _new_ _empty_ variable `PACKAGECONFIG:class-target`.  This is nearly
never what you want.  You typically want to take the base contents of
`PACAKGECONFIG` and remove something from it explicitly for the
`class-target` class.  What I wrote is exactly how to do that and what
there are multiple examples of in poky (see tclibc-barmetal.inc,
no-gplv3.inc, meta-openembedded uim_1.8.8.bb).

-- 
Patrick Williams


signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198919): 
https://lists.openembedded.org/g/openembedded-core/message/198919
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Alexander Kanavin
On Thu, 2 May 2024 at 14:57, Alexander Kanavin  wrote:
> > I've also tried switching to this, which is very clearly a "target"
> > qualifier and have the same exact results; it applies on "native"
> > `inherit_defer` evaluations:
> >
> > btrfs-tools_%.bbappend with...
> > ```
> > PACKAGECONFIG:remove:class-target = "python"
> > ```
>
> class-target:remove, not the other way around.

Ha, I got both of these wrong. Sorry.

Alex

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198918): 
https://lists.openembedded.org/g/openembedded-core/message/198918
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Alexander Kanavin
On Thu, 2 May 2024 at 14:52, Patrick Williams  wrote:

> I'm not convinced this is true.  As I wrote, the final result of
> PACKAGECONFIG is exactly what I expect; it includes `python` for the
> btrfs-tools-native and doesn't for the plain btrfs-tools:
>
> ```
> # pre-expansion value:
> #   " programs convert python crypto-builtin "
> PACKAGECONFIG=" programs convert python crypto-builtin "
> ```

Run experiments with plain poky and changes in local.conf, and that
will convince you.

> I've also tried switching to this, which is very clearly a "target"
> qualifier and have the same exact results; it applies on "native"
> `inherit_defer` evaluations:
>
> btrfs-tools_%.bbappend with...
> ```
> PACKAGECONFIG:remove:class-target = "python"
> ```

class-target:remove, not the other way around.

Alex

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198917): 
https://lists.openembedded.org/g/openembedded-core/message/198917
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Patrick Williams
On Thu, May 02, 2024 at 11:28:54AM +0200, Alexander Kanavin wrote:
> On Wed, 1 May 2024 at 23:27, Patrick Williams via
> lists.openembedded.org 
> wrote:
> > What is going on here?  Well, this:
> >
> > ```
> > meta-phosphor/conf/distro/include/phosphor-pkg-tweaks.inc
> > 6:# Disable python from btrfs-tools
> > 7:PACKAGECONFIG:remove:pn-btrfs-tools = "python"
> > ```
> >
> > We explicitly remove `python` from the _target_ btrfs-tools
> > `PACKAGECONFIG`, because we don't want it on-device (since that pulls
> > python itself as a side-effect).  If I remove this _target_ setting
> > everything works fine for the native package:
> 
> It's not a target setting. PACKAGECONFIG without qualifier overrides
> applies to all variants.

I'm not convinced this is true.  As I wrote, the final result of
PACKAGECONFIG is exactly what I expect; it includes `python` for the
btrfs-tools-native and doesn't for the plain btrfs-tools:

```
# pre-expansion value:
#   " programs convert python crypto-builtin "
PACKAGECONFIG=" programs convert python crypto-builtin "
```

I've also tried switching to this, which is very clearly a "target"
qualifier and have the same exact results; it applies on "native"
`inherit_defer` evaluations:

btrfs-tools_%.bbappend with...
```
PACKAGECONFIG:remove:class-target = "python"
```

-- 
Patrick Williams


signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198915): 
https://lists.openembedded.org/g/openembedded-core/message/198915
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-02 Thread Alexander Kanavin
On Wed, 1 May 2024 at 23:27, Patrick Williams via
lists.openembedded.org 
wrote:
> What is going on here?  Well, this:
>
> ```
> meta-phosphor/conf/distro/include/phosphor-pkg-tweaks.inc
> 6:# Disable python from btrfs-tools
> 7:PACKAGECONFIG:remove:pn-btrfs-tools = "python"
> ```
>
> We explicitly remove `python` from the _target_ btrfs-tools
> `PACKAGECONFIG`, because we don't want it on-device (since that pulls
> python itself as a side-effect).  If I remove this _target_ setting
> everything works fine for the native package:

It's not a target setting. PACKAGECONFIG without qualifier overrides
applies to all variants.

Alex

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198906): 
https://lists.openembedded.org/g/openembedded-core/message/198906
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-05-01 Thread Patrick Williams
On Thu, Apr 25, 2024 at 07:40:15PM +0200, Lean Sheng Tan wrote:
> >> > The error found when manually run bitbake btrfs-tools-native is as
> >> follows:
> >> >  checking for a Python interpreter with version >= 3.4... python3
> >> >  checking for python3...
> >> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
> >> >  checking for python3 version... 3.11
> >> >  checking for python3 platform... linux
> >> >  checking for GNU default python3 prefix... ${prefix}
> >> >  checking for GNU default python3 exec_prefix... ${exec_prefix}
> >> >  checking for python3 script directory (pythondir)...
> >> ${libdir}/python3.11/site-packages
> >> >  checking for python3 extension module directory (pyexecdir)...
> >> ${libdir}/python3.11/site-packages
> >> >  checking for python-3.11... no
> >> >  configure: error: Package requirements (python-3.11) were not met:
> >> >
> >> >  No package 'python-3.11' found
> >> >
> >> > To bypass this, we have to manually remove in OpenBMC with this tweak:
> >> > PACKAGECONFIG:remove:pn-btrfs-tools-native = "python"

I dug into this a bit more by starting from first principles.  Building
with an unchanged poky with the crops/poky docker container works.  Just
like you would expect, `PYTHON` gets set to `python3-native/python3`:

```
# $PYTHON [3 operations]
#   set /rundir/meta/conf/bitbake.conf:574
# "${@sys.executable}"
#   set /rundir/meta/classes-recipe/python3native.bbclass:9
# "${STAGING_BINDIR_NATIVE}/python3-native/python3"
```

So, I did the same thing in our OpenBMC tree:

```
# $PYTHON
#   set /home/apwillia/private/dev/openbmc/openbmc/meta/conf/bitbake.conf:574
# "${@sys.executable}"
PYTHON="/usr/lib/python-exec/python3.11/python3"
```

Somehow, `python3native.bbclass` is never inherited (also checked the
`INCLUDE HISTORY`).

The `btrfs-tools_6.8.bb` uses the new-ish `inherit_defer`, so I did some
more change there to debug:

```
- inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 
'setuptools3-base', '', d)}
+ inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python', 
'setuptools3-base', 'this_doesnt_exist' + d.getVar('PACKAGECONFIG').replace(' 
', '/'), d)}
```

This resulted in:
```
ERROR: ParseError at 
/home/apwillia/private/dev/openbmc/openbmc/meta/recipes-devtools/btrfs-tools/btrfs-tools_6.8.bb:46:
 Could not inherit file 
classes/this_doesnt_exist/programs/convert//crypto-builtin//.bbclass
```

So... not only are we not getting the `setuptools3-base` side of the
`inherit_defer`, but `PACKAGECONFIG` doesn't even contain `python`.
Which is not true because:

```
# pre-expansion value:
#   " programs convert python crypto-builtin "
PACKAGECONFIG=" programs convert python crypto-builtin "
```

What is going on here?  Well, this:

```
meta-phosphor/conf/distro/include/phosphor-pkg-tweaks.inc
6:# Disable python from btrfs-tools
7:PACKAGECONFIG:remove:pn-btrfs-tools = "python"
```

We explicitly remove `python` from the _target_ btrfs-tools
`PACKAGECONFIG`, because we don't want it on-device (since that pulls
python itself as a side-effect).  If I remove this _target_ setting
everything works fine for the native package:

```
# $PYTHON [3 operations]
#   set /home/apwillia/private/dev/openbmc/openbmc/meta/conf/bitbake.conf:574
# "${@sys.executable}"
#   set 
/home/apwillia/private/dev/openbmc/openbmc/meta/classes-recipe/python3native.bbclass:9
# "${STAGING_BINDIR_NATIVE}/python3-native/python3"
#   exported ast.py:52 [eval]
# [export] "1"
# pre-expansion value:
#   "${STAGING_BINDIR_NATIVE}/python3-native/python3"
export 
PYTHON="/home/apwillia/local/builds/lf-build-yosemite4/tmp/work/x86_64-linux/btrfs-tools-native/6.8/recipe-sysroot-native/usr/bin/python3-native/python3"
```

It seems to me like `inherit_defer` is broken.  Why is the _target_
variable being used for a _native_ recipe?

-- 
Patrick Williams


signature.asc
Description: PGP signature

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198887): 
https://lists.openembedded.org/g/openembedded-core/message/198887
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-04-25 Thread Lean Sheng Tan
Hi Ross,
Here is the background of this:
Initially we found this issue, when we are trying to build the Arm FVP for
openbmc, as you can see from the discussion here:
https://gerrit.openbmc.org/c/openbmc/openbmc/+/70070/comment/4a963c24_75b11840/

So thanks to the kind help from Patrick Williams (cc'ed here), he proposed
to try this fix:

> diff --git a/poky/meta/recipes-kernel/perf/perf.bb
> b/poky/meta/recipes-kernel/perf/perf.bb
> index 11fa917649..d39265367b 100644
> --- a/poky/meta/recipes-kernel/perf/perf.bb
> +++ b/poky/meta/recipes-kernel/perf/perf.bb
> @@ -54,7 +54,7 @@ PROVIDES = "virtual/perf"
>  inherit linux-kernel-base kernel-arch manpages


 # needed for building the tools/perf Python bindings
> -inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python',
> 'python3targetconfig', '', d)}
> +inherit_defer ${@bb.utils.contains('PACKAGECONFIG', 'python',
> 'setuptools3-base python3targetconfig', '', d)}


However, it is still not working. I added a workaround with this patch:
https://gerrit.openbmc.org/c/openbmc/openbmc/+/71017

Still, Patrick thinks that this should not be the case, and the proper fix
should be done via OpenEmbedded.

Currently we are not sure how to fix this properly and don't have any idea.
Much appreciated if you or anyone have any idea on this!

Thank you,
Sheng


On Thu, 25 Apr 2024 at 18:45, Lean Sheng Tan via lists.openembedded.org
 wrote:

> Hi Ross,
> Thank you for your quick response!
> That makes sense now.
>
> Regarding your statement:
> "That dependency in btrfs-tools might be actually not required, or you
> might want to make the recipe depend on python3-native."
> May I know if something has to be fixed from the meta-openembedded or
> generic yocto build?
> If not, what would be the best way to approach it?
>
> Thanks again.
>
> Best Regards,
> Sheng
>
>
> On Thu, 25 Apr 2024 at 18:34, Ross Burton  wrote:
>
>> On 25 Apr 2024, at 13:29, Sheng Lean Tan via lists.openembedded.org
>>  wrote:
>> >
>> > Hi,
>> > Good day to openembedded community!
>> >
>> > This is my first post - hope this is the right place to ask for help
>> regarding a build issue, as refer from here:
>> >
>> https://gerrit.openbmc.org/c/openbmc/openbmc/+/71017/comment/195b742f_6cf8da09/
>> >
>> > Currently, we saw this issue when building this on openBMC which is
>> based on Yocto:-
>> > The error found when manually run bitbake btrfs-tools-native is as
>> follows:
>> >  checking for a Python interpreter with version >= 3.4... python3
>> >  checking for python3...
>> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
>> >  checking for python3 version... 3.11
>> >  checking for python3 platform... linux
>> >  checking for GNU default python3 prefix... ${prefix}
>> >  checking for GNU default python3 exec_prefix... ${exec_prefix}
>> >  checking for python3 script directory (pythondir)...
>> ${libdir}/python3.11/site-packages
>> >  checking for python3 extension module directory (pyexecdir)...
>> ${libdir}/python3.11/site-packages
>> >  checking for python-3.11... no
>> >  configure: error: Package requirements (python-3.11) were not met:
>> >
>> >  No package 'python-3.11' found
>> >
>> > To bypass this, we have to manually remove in OpenBMC with this tweak:
>> > PACKAGECONFIG:remove:pn-btrfs-tools-native = "python"
>> >
>> > May I know if this is a real bug, or if we did miss something from our
>> configuration?
>>
>> It looks like the native btrfs-tools is trying to build against the host
>> python:
>>
>> >  checking for python3...
>> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
>>
>> So the problem is that your build host doesn’t have python3-dev or
>> similar installed.
>>
>> That dependency in btrfs-tools might be actually not required, or you
>> might want to make the recipe depend on python3-native.
>>
>> Ross
>
>
> 
>
>

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198707): 
https://lists.openembedded.org/g/openembedded-core/message/198707
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-04-25 Thread Lean Sheng Tan
Hi Ross,
Thank you for your quick response!
That makes sense now.

Regarding your statement:
"That dependency in btrfs-tools might be actually not required, or you
might want to make the recipe depend on python3-native."
May I know if something has to be fixed from the meta-openembedded or
generic yocto build?
If not, what would be the best way to approach it?

Thanks again.

Best Regards,
Sheng


On Thu, 25 Apr 2024 at 18:34, Ross Burton  wrote:

> On 25 Apr 2024, at 13:29, Sheng Lean Tan via lists.openembedded.org
>  wrote:
> >
> > Hi,
> > Good day to openembedded community!
> >
> > This is my first post - hope this is the right place to ask for help
> regarding a build issue, as refer from here:
> >
> https://gerrit.openbmc.org/c/openbmc/openbmc/+/71017/comment/195b742f_6cf8da09/
> >
> > Currently, we saw this issue when building this on openBMC which is
> based on Yocto:-
> > The error found when manually run bitbake btrfs-tools-native is as
> follows:
> >  checking for a Python interpreter with version >= 3.4... python3
> >  checking for python3...
> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
> >  checking for python3 version... 3.11
> >  checking for python3 platform... linux
> >  checking for GNU default python3 prefix... ${prefix}
> >  checking for GNU default python3 exec_prefix... ${exec_prefix}
> >  checking for python3 script directory (pythondir)...
> ${libdir}/python3.11/site-packages
> >  checking for python3 extension module directory (pyexecdir)...
> ${libdir}/python3.11/site-packages
> >  checking for python-3.11... no
> >  configure: error: Package requirements (python-3.11) were not met:
> >
> >  No package 'python-3.11' found
> >
> > To bypass this, we have to manually remove in OpenBMC with this tweak:
> > PACKAGECONFIG:remove:pn-btrfs-tools-native = "python"
> >
> > May I know if this is a real bug, or if we did miss something from our
> configuration?
>
> It looks like the native btrfs-tools is trying to build against the host
> python:
>
> >  checking for python3...
> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
>
> So the problem is that your build host doesn’t have python3-dev or similar
> installed.
>
> That dependency in btrfs-tools might be actually not required, or you
> might want to make the recipe depend on python3-native.
>
> Ross

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198706): 
https://lists.openembedded.org/g/openembedded-core/message/198706
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] btrfs-tools-native build python error

2024-04-25 Thread Ross Burton
On 25 Apr 2024, at 13:29, Sheng Lean Tan via lists.openembedded.org 
 wrote:
> 
> Hi,
> Good day to openembedded community!
> 
> This is my first post - hope this is the right place to ask for help 
> regarding a build issue, as refer from here:
> https://gerrit.openbmc.org/c/openbmc/openbmc/+/71017/comment/195b742f_6cf8da09/
> 
> Currently, we saw this issue when building this on openBMC which is based on 
> Yocto:-
> The error found when manually run bitbake btrfs-tools-native is as follows:
>  checking for a Python interpreter with version >= 3.4... python3
>  checking for python3... 
> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3
>  checking for python3 version... 3.11
>  checking for python3 platform... linux
>  checking for GNU default python3 prefix... ${prefix}
>  checking for GNU default python3 exec_prefix... ${exec_prefix}
>  checking for python3 script directory (pythondir)... 
> ${libdir}/python3.11/site-packages
>  checking for python3 extension module directory (pyexecdir)... 
> ${libdir}/python3.11/site-packages
>  checking for python-3.11... no
>  configure: error: Package requirements (python-3.11) were not met:
> 
>  No package 'python-3.11' found
> 
> To bypass this, we have to manually remove in OpenBMC with this tweak:
> PACKAGECONFIG:remove:pn-btrfs-tools-native = "python"
> 
> May I know if this is a real bug, or if we did miss something from our 
> configuration?

It looks like the native btrfs-tools is trying to build against the host python:

>  checking for python3... 
> /home/apwillia/local/builds/lf-build-yosemite4/tmp/hosttools/python3

So the problem is that your build host doesn’t have python3-dev or similar 
installed.

That dependency in btrfs-tools might be actually not required, or you might 
want to make the recipe depend on python3-native. 

Ross
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#198705): 
https://lists.openembedded.org/g/openembedded-core/message/198705
Mute This Topic: https://lists.openembedded.org/mt/105729019/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-