Bug 14864

Summary: gpsd fails to include python utilities
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Matt Woelfel <matthew.woelfel>
Component: oe-core otherAssignee: Unassigned <unassigned>
Status: RESOLVED INVALID QA Contact:
Severity: normal    
Priority: Undecided CC: randy.macleod, tim.orling
Version: 3.1.20   
Target Milestone: ---   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Matt Woelfel 2022-07-15 18:21:36 UTC
Preconditions/Environment
-------------------------
I'm using Fedora 36. The build environment is crops/yocto.

Triggering Action/Cause
-----------------------
# checkout the dunfell branch of poky
git clone https://github.com/yoctoproject/poky.git -b dunfell
# enter a crops container
podman run --userns=keep-id --rm -it -v $HOME:$HOME -w $PWD/poky crops/yocto:centos-8-base /bin/bash
# setup the environment
source oe-init-build-env
bitbake-layers layerindex-fetch meta-oe
echo IMAGE_INSTALL_append += \" gpsd\" >> conf/local.conf
# build
bitbake gpsd -v

Expectation
-----------
gspfake, gpscat, and other utilities should be available.

Actual Result
-------------
Building gpsd seems to miss finding python and omits the python utilities from the build:

python = False (default True): build Python support and modules.

Adding a custom layer with a gpsd_3.19.bbappend that contains:

EXTRA_OESCONS += " target_python=python3"

enables python to be found, but the path in the include flag is messed up for gpsd to find Python.h:

Checking whether python3 program exists.../home/matt/poky/build/tmp/work/core2-64-poky-linux/gpsd/3.19-r0/recipe-sysroot-native/usr/bin/python3-native/python3
Obtaining Python exe path... 
yes

Obtaining Python lib dir... 
yes

Obtaining Python config vars... 
ok
...
gcc -pthread -o gpspacket-py_3_8_13_final_0.cpython-38-x86_64-linux-gnu.so -c -Wno-unused-result -Wsign-compare -fPIC -DNDEBUG -g -O3 -Wall -I/home/matt/poky/build/tmp/work/core2-64-poky-linux/gpsd/3.19-r0/recipe-sysroot/usr/include/home/matt/poky/build/tmp/work/core2-64-poky-linux/gpsd/3.19-r0/recipe-sysroot-native/usr/include/python3.8 gpspacket.c

gpspacket.c:20:10: fatal error: Python.h: No such file or directory
   20 | #include <Python.h>


Reproducibility
---------------
10/10

I tried a native host and several flavors of crops such as Ubuntu 18.04 and 20.04 with the same results each time.
Comment 1 Randy MacLeod 2022-07-21 14:36:38 UTC
gpsd is in meta-oe so it's not covered by this bugzilla:
   https://layers.openembedded.org/layerindex/recipe/1120/
but we hear that it works on kirkstone so take a look there and 
ask for help on the meta-oe email list if required. 

Thanks for the clear bug report anyhow -- YP Bug Review
Comment 2 Tim Orling 2022-07-21 14:40:26 UTC
Looks like the commit that fixed this on kirkstone was:
http://cgit.openembedded.org/meta-openembedded/commit/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb?h=kirkstone&id=64156a6f8f3b4527c4732c91936aee0a167acb48

You can do something similar in a bbappend if you must use dunfell.
Comment 3 Matt Woelfel 2022-07-21 15:03:31 UTC
(In reply to comment #1)
> gpsd is in meta-oe so it's not covered by this bugzilla:
>    https://layers.openembedded.org/layerindex/recipe/1120/
> but we hear that it works on kirkstone so take a look there and 
> ask for help on the meta-oe email list if required. 
> 
> Thanks for the clear bug report anyhow -- YP Bug Review

Thanks for pointing me in the right direction. I'll ask on the mailing list.